【Java】异常

异常的继承结构

Error类是错误,描述了Java运行时内部错误和资源耗尽的错误。一旦出现,程序报错,无法处理。

Exception类是异常,分了两个IOException也就是IO异常,和RuntimeExption运行时异常。

异常处理

  • try..catch
  • try..finally
  • try..catch..finally

在catch中可以通过异常类提供的printStackTrace()方法进行异常信息的输出。

finally不管是否有异常都会执行。

throws关键字

可以给方法生名throws关键字去抛出异常。

public class Hello {
    public static void main(String[] args) {
        try {
            System.out.println(cal(5,0));
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    public static int cal(int x,int y) throws Exception{
        return x/y;
    }
}

主方法本身也属于一个方法,所以主方法上也可以使用throws进行异常抛出,这个时候如果产生了异常就会交给JVM处理。

throw关键字

throw是直接写在语句中的,表示认为的抛出异常。

public class Hello {
    public static void main(String[] args) throws Exception{
        try {
            throw new Exception("异常");
        } catch (Exception e){
            e.printStackTrace();
        }
    }
}

throws和throw的区别

  1. throw用于方法内部,主要表示手工异常抛出。
  2. throws主要在方法声明上使用,明确告诉用户本方法可能产生的异常,同时该方法可能不处理此异常。

RuntimeException类

使用RuntimeException定义的异常类可以不用强制性进行异常处理。

Exception与RuntimeException的区别:

  • Exception是RuntimeException的父类。
  • 使用Exception定义的异常都要求必须使用异常处理。
  • 使用RuntimeException定义的异常可以由用户选择性的来进行异常处理。

请列举几个常见的RuntimeException:
ClassCastException(强制转换类型异常)、NullPointerException(空指针异常)。

posted @ 2020-01-31 22:51  LampsAsarum  阅读(99)  评论(0编辑  收藏  举报