1、异常的基本概念

1、异常是导致程序中断的运行的一种指令流

2、异常处理的基本格式:try...catch处理,在try语句中捕获异常,异常之后的代码不再被执行,然后在catch语句块中进行处理

3、不管程序是否会产生异常,肯定都会执行到finally语句,finally语句作为异常的统一出口

4、在Java异常结构中,实际是有两个最常用的类 Exception 和 Error,这两个类都是Throwable的子类

   1、Exception一般指程序中出的问题,可以通过try...catch来处理

   2、Error一般是JVM错误,程序无法处理

5、一般在catch语句输出异常信息是,除了可以用System.out.println(异常对象)输出异常信息外,有时也直接使用Exception类

   的public void printStackTrace()输出异常信息,后者打印的异常信息最完整

6、Java的异常处理机制

    1、一旦产生异常,则会产生一个异常类的实例化对象

    2、在try语句中对此异常对象进行捕获

    3、产生的异常对象和catch语句中的各个异常类型进行匹配,如果匹配成功,就执行catch语句中的代码

7、在Java中所有捕获范围小的异常必须放在捕获范围大的异常之前,否则编译时出现错误提示

8、对于一个程序来说,如果有多个异常需要处理,最好分别进行捕获,而不是直接使用Exception捕获全部异常

2、其他的异常处理

    1、throws关键字:定义一个方法时可以使用throws关键字声明,表示此方法不处理异常,而是交给方法调用出进行处理,格式             public 返回值类型 方法名称 (参数列表)throws 异常类{},在方法调用出,不管是否发生异常,都要进行异常处理

2、throws是定义在方法上的,那么主方法也可以使用throws,因为主方法是程序的起点,所有主方法在向上抛出异常,就只

       能交给JVM进行处理,而Java的“头”就是JVM

    3、throw可以直接抛出一个异常,抛出是直接抛出异常类的实例化对象即可

    4、在异常处理机制中

       1、如果Exception在程序中必须用try...catch处理

       2、RuntimeException可以不用try...catch处理,但是如果有异常产生,将有JVM进行处理,对于RuntimeException的子类最好

          也采用异常处理机制

    5、自定义异常类:自定义异常类只需要继承Exception类即可

    6、断言:断言就是肯定某一个结果是正确的,如果返回值是错误的,则通过断言检查肯定会提示错误信息,格式 assert 布尔表

       达式或者 assert 布尔表达式 :详细的信息