1.异常是一个可以正确运行的程序在运行中可能发生的错误(编译系统检查出来的语法错误,导致程序运行结果不正确的逻辑错误,都不属于异常的范围)
异常的重要性在于程序不但能发现异常,还能处理异常,使程序正常退出
2.异常的分类:
Runtime Exception:由系统检测,用户的Java程序可不做处理,系统将它们交给缺省的异常处理程序
非Runtime Exception:Java编译器要求Java程序必须捕获或声明所有的非运行时异常
throw:用户自己产生异常
3.常见的异常:
4.Java的异常处理机制:
Java提供的是异常处理的抓抛模型
Java程序的执行过程中若出现异常,会自动生成一个异常类对象,该异常对象将被提交给Java运行时系统,这个过程称为抛出(throw)异常。
若一个方法内抛出异常,该异常会被抛到调用方法中,如果异常没有在调用方法中处理,它继续被抛给这个调用方法的调用者。这个过程将一直继续下去,直到异常被处理。这一过程被称为捕获(catch)异常
如果一个异常回到main()方法,并且main()也不处理,则程序运行终止
5.Java异常处理的两种方式:
6.捕获异常的有关信息
getMessage()方法:用来得到有关异常事件的信息
printStackTrace()用来跟踪异常事件发生时执行堆栈的内容
7.Throw语句-声明异常:
一个方法不处理它产生的异常,而是沿着调用层次向上传递,由调用它的方法来处理这些异常,叫声明异常
Throws语句用来表明一个方法可能抛出的各种异常,并说明该方法会抛出但不捕获异常
8.对于程序中需要处理的异常,一般编写try-catch-finally语句捕获并处理
而对于程序中不需要处理的异常,可以使用throws语句在方法中抛出异常交由系统处理
Throw抛出异常主要用于自定义异常:<throw><异常对象>
程序会在throw语句处立即终止,转向try...catch寻找异常处理方法