异常处理

2019-04-07  本文已影响0人  Finlay_Li
  1. 什么是异常
    异常的发生不可避免,对于异常产生的结果我们可以正确处理,保证程序的正常运行

比如: 客户输入数据的时候(给出提示)
读取文件是否存在(告诉JVM在与不在该如何处理)
网络是否始终保持通畅等等(给出网络异常提示)

一旦发生异常,会在该代码处,生成一个异常对象,以堆栈式抛出,若不处理,程序将终止运行

  1. java程序执行分成2部分:编译 运行
    我们要处理的是Exception

  2. 异常的体系结构
    java.lang.Throwable:是所有错误和异常的父类

  1. 怎么处理异常

异常的处理:Java中异常的处理采用的是抓抛模型

    try{
        //可能发生异常的语句
        //同一个功能的语句
    }catch(异常的类型 变量名){
        //异常的处理
    } finally{
        //可选的,一定被执行的语句
    }

注意:
①catch 块可以有多个,由从上往下执行,一旦某个 catch 异常类型匹配成功,其他 catch 块将不再执行

②若 catch 块中的异常类型具有子父类关系,必须"子上父下",否则毫无意义。

③try-catch-finally 是可以嵌套的
④finally 可选的,一旦写上一定被执行,并优先于return执行。因为return结束方法,而finally一定要执行所以优先

6.抓

public void show() throws FileNotFoundException, IOException{}
            public int div(int a, int b){
                if(b == 0){
                    throw new RuntimeException("除数不能为零!");
                }
                return a / b;
            }
            public int div(int a, int b) throws ArithmeticException{
                if(b == 0){
                    throw new Exception("除数不能为零!");
                }
                return a / b;
            }
  1. 【面试题】throw 和 throws 区别
    throws 是异常处理的一种方式,交给调用者做具体的处理
    throw 制造异常,手动制造可控的描述信息异常,再抛出

  2. 自定义异常

public class MyException extends RuntimeException{
    private static final long serialVersionUID = -7736287090372348682L;
    public MyException(){  
    }
    public MyException(String message){
        super(message);
    }
}
上一篇 下一篇

猜你喜欢

热点阅读