本章内容:
一、初识异常
初识异常
异常的用处
二、异常的基本用法
捕获异常
抛出异常
三、自定义异常类
一、初识异常 1.1初识异常所谓异常指的就是程序在运行时出现错误时通知调用者的一种机制。,一场种类很多处理方式也不同。
1.2异常的用处程序发生异常后,程序员可以通过异常来对程序进行处理,完善程序,使得程序更加完美,更加健壮。
二、异常的基本用法 2.1捕获异常try{
有可能出现异常的语句:
}
[ catch (异常类型 异常对象)
{
}....]
[finally{
异常出口
}]
try代码块中放的是可能出现的异常代码。
catch代码块中放的是出现异常后的处理行为。
finally代码块中的代码用于处理善后工作,会在最后执行。
其中catch和finally都可以根据情况选择加或者不加。
1.不处理异常
我们发现一旦出现异常,程序就终止了,不再往下继续执行了。
2.使用try catch后的程序执行过程
使用try catch 如果try中出现异常,则程序会交给catch中的代码来执行,catch执行完毕后会继续执行
3.catch只能处理对应种类的异常
我们将代码修改后,让代码抛出的是空指针异常。
执行结果却不能争取输出是因为catch语句不能捕获到刚才的空指针异常,因为异常类型不匹配。
4.catch语句可以有多个
5.也可以用一个catch捕获所有异常
6.finally表示最后的善后工作。
无论是否存在异常,finally中的代码一定都会执行到,保证最终一定会执行到Scanner的close方法。
2.2抛出异常我们在日常编程中除了通过不同的编译器自动抛出异常,也可以手动抛出某个异常,这时我们需要使用关键字throw来进行操作。
我们可以使用throw关键字,把可能抛出的异常显式的标注在方法定义的位置。从而提醒调用者要注意捕获这些异常。
关于finally的注意事项
finally中的代码保证一定会执行到
finally执行的时机是在方法返回之前(try或者catch中如果有return会在这个return之前执行finally)。但是如果finally中也存在return语句,那么就会执行finally中的return,从而不会执行到try中原有的return。
异常体系
Throwable派生出两个重要的子类,Error和Exception
Error指的是java运行时内部错误和资源耗尽错误。应用程序不抛出此类异常,这种内部错误一旦出现,除了告知用户并使程序终止之外,再无能为力。这种情况很少出现。
Exception是我们程序员所使用的异常类的父类。
其中Exception有一个子类称为RuntiomeException。这里面又派生出很多我们常见的异常类
NullPointerException,IndexOuyOFBoundsException等
java语言规范将派生于Erorr类或RuntimeException类所有异常称为非受查异常,所有的其他一场成为受查异常。
如果一段代码可能抛出受查异常,那么必须显式进行处理。
三、自定义异常类我们可以是举一个用户登陆的例子。



