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

来源:互联网 发布:数据魔方在哪里看 编辑:程序博客网 时间:2024/05/29 12:03
package com.liuxin.file;public class ExceptionTest {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubTryCatch 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 blocke.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处理可能存在的错误后,还能继续网下走!!!!");}}
阅读全文
0 0