int a = 1; int b = 0; try { //监控区域 System.out.println(a/b); }catch (ArithmeticException e){ //catch的参数是想要捕获的异常类型,可以写多个catch,并且范围大的要写在范围小的后面,一个异常只会被捕获一次 System.out.println("除数不能为0"); }finally { //处理善后工作,也可以不写,一般来关闭IO和资源 System.out.println("finally"); }
throw-throws示例
public static void main(String[] args) { try { new Student().test(1,0); } catch (ArithmeticException e) { //捕获test()方法中抛出的异常并处理,程序就不会停止 System.out.println("除数为0"); } finally { System.out.println("结束"); } } public void test(int a,int b) throws ArithmeticException{ //假设方法中无法处理这个异常,再次抛出异常 if (b==0){ throw new ArithmeticException(); //主动抛出的异常,在方法中使用 } }
(1) 创建自定义异常类,继承exception类即可,最好重写toString方法(为了方便打印自己的异常信息)
(2) 在方法中通过throw抛出异常对象
(3) 如果在方法内没有用try-catch捕获并处理,那么需要在方法的声明处通过throws抛出异常给方法调用者
(4) 调用者捕获并处理异常
原文:https://www.cnblogs.com/xinyounuanyang/p/13650981.html