Java把异常当作对象来处理,基于java.lang.Throwable作为超类
分为 Error 和Exception, exception有runtime和非runtime异常。
抛出异常---捕获异常
快捷 键:直接包裹代码块 Ctrl + Alt + T
关键字: try, catch, finally, throw, throws
try{ //监控的代码块 }catch(XXXException e){//想要捕获的异常类型 //捕获异常后的操作 }finally{ //处理善后工作 }
catch可以写多个,把权限最大的异常写到最后,
//catch 处理: catch(Exception e){ System.exit(1);//程序结束 e.printStackTrace();//打印错误栈信息 }
主动抛出异常(throw和throws的区别,一个在方法中,一个在方法声明中使用
//直接抛出异常,没法处理 if (b ==0){ throw new ArithmeicException();//throw,然后new一个异常 } //向上给方法,方法抛出异常,在调用方法时进行try catch 包装处理。 public void test(int a, int b) throws ArithmeticException{ if (b ==0){ throw new ArithmeicException();//throw,然后new一个异常 } }
public class MyException extends Exception{ private int detail; public MyException(int detail) { this.detail = detail; } @Override public String toString() { return "MyException{" + "detail=" + detail + '}'; } } //后面调用时 catch(MyException e){ System.out.println(e)//e就是自己写的toString方法里的东西 }