异常处理
Exception: 在java中,所有的异常类都继承了该类
1, 运行时异常: 可以不处理
........
2, 检查性异常: 必须得处理,不处理程序不能运行
...... 调用 带有检查性异常的方法时,idea软件会提示,必须处理
Error 不是 异常,比异常严重
二. 如何处理异常
2.1, try{} catch(){}
把有异常的代码放到try{}中,运行时一旦有异常会被catch给捕获
有助于程序员调试程序
try{
    ....可能 有异常的代码
}
catch(异常类型一  e){
    System.out.println(e.getMessage()); //输出错误信息
    如果try{}中出现的异常类型属于 异常类型一, 那么执行这里的代码
}
catch(异常类型二  e){
    如果try{}中出现的异常类型属于 异常类型二, 那么执行这里的代码
}
catch(异常类型三 e){
    如果try{}中出现的异常类型属于 异常类型三, 那么执行这里的代码
}
catch(异常类型四  e){
    如果try{}中出现的异常类型属于 异常类型四, 那么执行这里的代码
}
.......
catch(Exception e){
    兜底
}
或:
try{
    ....可能 有异常的代码
}
catch(异常类型一 | 异常类型二 | 异常类型三 e){
    如果try{}中出现的异常类型属于 异常类型一, 那么执行这里的代码
}   
......这里的代码可以继续执行
2.2 throws 异常
抛出异常: 自己不处理,告诉调用本方法的人,我这里可能会有异常,让调用者来处理
public class Test{
    public void t1() throws 异常类{
        
    }
    //谁调用t1, 就告诉谁, t1方法可能会有异常
}
2.2 @SneakyThrows(引用第三方包 lombok @Data)
实例代码:
public class YiChang { public static void t1(int a, int b){ if(b == 0){ System.out.println("除数不能是0"); return; //停止代码继续执行 } System.out.println( a / b); }  public static void t2(int a, int b){ try{ System.out.println( a / b); } catch (ClassCastException e){ System.out.println("ClassCastException"); } catch (NullPointerException e){ System.out.println("NullPointerException"); } catch (ArithmeticException e){ System.out.println("ArithmeticException"); } catch (Exception e){ System.out.println("Exception"); } finally { //无论前边有没有异常,这里的代码都会执行 System.out.println("一切正常,请放心"); } } public static void t3(int a,int b) throws ArithmeticException{ System.out.println(a / b); } public static void t4(int a,int b) throws SQLException { System.out.println(a / b); } } public class YiChangTest {  public static void main(String[] args) { YiChang.t1(10,5); YiChang.t2(10,0); //异常与哪个catch匹配,就执行哪个catch后面的代码  //调用抛出运行时异常,可以不处理 try{ YiChang.t3(10,0); } catch (ArithmeticException e){} //调用抛出检查性异常的方法,必须处理 try{ YiChang.t4(10,0); } catch (SQLException e){} catch (ArithmeticException e){} System.out.println("一切都不影响");  } }
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号