try...catch和finally:
为了解决异常,Java提供了对异常进行处理的方式——异常捕获。异常捕获使用try...catch语句实现,具体格式如下:
当try代码块中的程序发生了异常,系统会将异常的信息封装成一个异常对象,并将这个对象传递给catch代码块进行处理。catch代码块需要一个参数指明它所能接收到异常类型,这个参数的类型必须是Exception类或其子类。
finally中的代码块在一种情况下是不会执行的,就是在try...catch中执行了System.exit(0)语句。System.exit(0)表示退出当前的Java虚拟机,Java虚拟机停止了,任何代码都不能再执行了。
throws关键字:在方法的后面使用throws关键字对外声明该方法有可能发生的异常,这样调用者在调用方法时,就明确地知道该方法是否有异常,并且必须在程序中对异常进行处理,否则编译无法通过。
throws关键字声明抛出异常的语法格式:
编译时异常与运行时异常:
编译时异常:在Exception类中,除了TuntimeException类及其子类外,Exception的其他子类都是编译时异常。编译时异常的特点是Java编译器会对异常进行检查,如果出现异常就必须对异常进行处理,否则程序无法通过编译。具体方式:1.使用try...catch语句对异常进行捕获处理。2.使用throws关键字声明抛出异常,调用者对异常进行处理。
运行时异常:特点:Java编译器不会对异常进行检查。
自定义异常: