异常的分类与使用

Posted li33

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常的分类与使用相关的知识,希望对你有一定的参考价值。

异常

异常分类

技术图片

Throwable是祖宗,Error和Exception都是它的子类。

Error是很严重的问题,一旦出现一定要解决,常见的是IOError,StackOverflowError

Exception是无法避免的,但是我们可以再可能发生异常的地方捕获异常

异常被捕获了之后程序还能继续运行。

捕获异常用try....catch...finally

public static void main(String[] args) {
        int a = 10;int b = 0;
        try {
            System.out.println(a/b);
        }catch (ArithmeticException e){
            e.printStackTrace();//打印出来异常,是红色的
            System.out.println("除数不能为0");
        }catch (Exception e){//后面的catch一定要是前面的祖宗,不然没必要多个catch,参考污水三级净化
            e.printStackTrace();
        }finally {
            System.out.println("不管有没有捕获,finally一定会执行");
        }
    }
结果:
    java.lang.ArithmeticException: / by zero
      at InnerCLass.Test.main(Test.java:7)
    除数不能为0
    不管有没有捕获,finally一定会执行

多个catch,层次递进,一开始捕获的异常是小的,然后是大一点。类似于if else.

throw,throws关键字

他们是不一样的,一般用在方法中,用来主动抛出异常,这个方法处理不了这个异常,用throws上抛,让其他程序来处理。

public static void main(String[] args) {
    int a = 10;int b = 0;
    new Test().chu(a,b);//匿名内部类的使用,很方便
}
public void chu(int a,int b) throws ArithmeticException{//解决不了,再上抛一个异常,谁用数解决
    if(b == 0){
        throw new ArithmeticException();//抛出异常
    }
}

以上是关于异常的分类与使用的主要内容,如果未能解决你的问题,请参考以下文章

解决未能加载文件或程序集“Newtonsoft.Json ...."或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)(代码片段

异常的分类与使用

异常和TCP通讯

在tablayout片段之间进行通信[重复]

片段中的Android致命异常

方便调试使用的代码片段