java try catch 吃掉异常与跑出异常的区别,以及在项目中是否改抛出异常的理解

java try catch 吃掉异常与跑出异常的区别,以及在项目中是否改抛出异常的理解

package com.liuxin.file;

public class ExceptionTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
	TryCatch tryCatch =new TryCatch();
	/*下面这个方法中有try catch。但是因为在该方法中已经被try Catch吃掉了,所以在这里就不需要处理了。
	遇到错误会在该方法中将错误处理成我们想要的样子,比如打印到控制台,日志,方便我们知道错误原因,方便修改
	*/
	tryCatch.worryMethod();
	
	
	/**
	 * 下面这个方法要处理来自调用方法worryMethod()方法中抛来的错误,而上面的方法就不需要,因为它的内部方法已经处理过了这就是二者的区别。
	 * 
	 * 总结:现实开发中,我们经常会遇到,别人说我不需要你抛来的异常,而是错误码和错误信息,方便他们判断调用我们的工程时的入参哪里不符合我们的规范。
	 * 当然谁处理异常就要麻烦一点,要罗列可能存在的错误,处理过程常常是在catch中将错误封装到一个对象的字段中,而不是使用throw,处理过程比较复杂。
	 * 而别用调用你时就比较省事了,拿到你处理后的对象,判断传来的是否成功的字段,可清晰明了的知道是否调用成功,并且会根据错误信息字段知道是那个入参不对,进而修改即可。
	 * 
	 */
	ThrowTest throwTest=new ThrowTest();
	try {
		throwTest.worryMethod();
		
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	}

}
package com.liuxin.file;

public class ThrowTest {
	void worryMethod() throws Exception{
		try{
			int a = 1/0;
			System.out.println(a);
		}catch (Exception e) {
			/**
			 * throw 扔出异常,那么调用此方法的函数就要处理此方法抛出来的异常。
			 * eclipse也会自动提示开发人员调用此方法时要通过try catch 或exception两种方式处理,
			 * 这样 调用此方法的函数就必须处理
			 */
			throw new Exception(e.getMessage());//最后一行
//			System.out.println("------上面一步跑出异常后就不在往下走,也就是不会打印这一句话----");  报错了
		}
	}

}


package com.liuxin.file;


public class TryCatch {
 public void worryMethod(){
 try{
 int a = 1/0;
 }catch (Exception e){
 /*吃掉异常,将可能存在的错误处理掉,也就是将错误打印处理,让开发人员知道错误原因,方便修改
 ,这样调用此方法的类就不用再处理了*/
 System.err.println("数据结果错误!!");
 System.err.println(e.getMessage());
  System.out.println("----try catch处理可能存在的错误后,还能继续网下走!!!!");
 }


}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106270.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言 — void的用法解析[通俗易懂]

    C语言 — void的用法解析[通俗易懂]C语言-void的用法解析简介​ void中文翻译为”无类型”,有的也叫”空类型”。常用在程序中对定义函数的参数类型、返回值、函数中指针类型进行声明。用法​ void应用最广泛的就是跟指针结合,即void* //无类型指针,也称为空指针,可以指向任何类型的数据 //注意一点:当我们需要使用void类型的的指针变量区指向 某一类型的变量的时候,必须要对其进行类型转换​ 这里补充一点:因为我们在定义一个指针变量的时候第一件事就是指定我们指针变量所指向的变量的类型。一

    2022年5月19日
    103
  • IDEA快捷键设置复制上一行

    IDEA快捷键设置复制上一行Idea真是的一个神奇的ide,用着爱不择手。之前用习惯了eclipse的“ctrl+向下箭头”,复制一行,如何设置idea里这个快捷键呢File->settings->keymap->搜索duplicate->双击DuplicateEntireLines设置一下,搞定,又可以很爽的用ctrl+向下箭头复制一行了虽说以上的一种解决方法,但是经…

    2022年5月14日
    429
  • 开启1521端口监听_Oracle开放1521端口 telnet不通解决办法

    开启1521端口监听_Oracle开放1521端口 telnet不通解决办法在windosw虚拟机server2012上安装Oracle数据库后,远程连接失败,报java.sql.SQLException:TheNetworkAdaptercouldnotestablishtheconnection错误,然后尝试解决。1.先在防火墙上配置入站规则,开放1521端口。2.然后telnetserver_ip1521还是报连接失败,因为虚拟机的ip是配…

    2022年6月10日
    190
  • SSM框架面试题总结[通俗易懂]

    SSM框架面试题总结[通俗易懂]Spring如何实现一个IOC容器配置文件配置包扫描路径递归包扫描获取.class文件反射,确定需要交给IOC管理的类对需要注入的类进行依赖注入配置文件中指定需要扫描的包路径定义一些注解,分别表示访问控制器,业务控制层,数据持久层,依赖注入注解,获取配置文件注解从配置文件中获取需要扫描的包路径,获取到当前路径下的文件信息及文件夹信息,我们将当前路径下所有的以.class结尾的文件添加到一个Set集合中进行存储遍历这个Set集合,获取在类上有指定注解的类,并将其交给IOC容器,定义一个

    2022年6月16日
    31
  • laravel-admin 自定义导出excel功能,并导出图片

    laravel-admin 自定义导出excel功能,并导出图片

    2021年10月30日
    40
  • 推荐几款s60软件

    推荐几款s60软件用了一段时间E72(应该是E52),大概已经习惯了s60系统s60既不会出什么问题,也不会太出众,这份稳定,就是我所需要的介绍一下笔者常用的软件吧系统工具类360手机卫士虽然来电通也是很好的软件,但如

    2022年7月3日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号