本帖最后由 xiao_ming 于 2015-10-24 17:34 编辑
第二期Android菜鸟饭团#Java学习#第四课 活动笔记
一、异常处理(运行期出现的错误) Java异常是Java提供的用于处理程序中错误的一种机制。 所谓错误是指在程序运行的过程中发生的一些异常事件(如,除0溢出,数组下标越界,所要读取的文件不存在) 设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为一场的发生而阻断 或生产不可预见的结果。 Java程序的执行过程中如出现异常事件,可以生成一个异常类现象,该异常对象封装了异常事件的信息并将被提交给Java运行时系统,这个过程称为抛出(throw)异常。 当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常。
二、异常的分类 Error:称为错误,由Java虚拟机生成并抛出,包括动态连接失败,虚拟机错误等,程序对其不做处理。 Exception:所以异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显示的声明或捕捉。 Runtime Exception:一类特殊的异常,如被0除,数组下标超范围等,其产生比较频繁,处理麻烦,如果显示的声明或捕捉将会对程序可读性和运行效率影响很大,因此由系统自动检测并将它们缺省的异常处理程序(用户可不必对其处理)
三、捕获异常 使用try和catch关键字可以捕获异常。try/catch代码块放在异常可能发生的地方。try/catch代码块中的代码称为保护代码,使用 try/catch的语法如下:
try{
// 程序代码 }catch(ExceptionName e1){
//Catch 块} |
Catch语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try后面的catch块就会被检查。 如果发生的异常包含在catch块中,异常会被传递到该catch块,这和传递一个参数到方法是一样。
三、多重捕获块 一个try代码块后面跟随多个catch代码块的情况就叫多重捕获。 多重捕获块的语法如下所示:
try{
// 程序代码
}catch(异常类型1 异常的变量名1){
// 程序代码
}catch(异常类型2 异常的变量名2){
// 程序代码
}catch(异常类型2 异常的变量名2){
// 程序代码
} |
四:异常抛出: 如果一个方法没有捕获一个检查性异常,那么该方法必须使用throws 关键字来声明。throws关键字放在方法签名的尾部。也可以使用throw关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。 下面方法的声明抛出一个RemoteException异常:
import java.io.*;public class className{
public void deposit(double amount) throws RemoteException
{
// Method implementation
throw new RemoteException();
}
//Remainder of class definition} |
finally关键字用来创建在try代码块后面执行的代码块。无论是否发生异常,finally代码块中的代码总会被执行。在finally代码块中,可以运行清理类型等收尾善后性质的语句。finally代码块出现在catch代码块最后,语法如下:
try{
// 程序代码
}catch(异常类型1 异常的变量名1){
// 程序代码
}catch(异常类型2 异常的变量名2){
// 程序代码
}finally{
// 程序代码
} |
注意下面事项: Catch不能独立于try存在。 在try/catch后面添加finally块并非强制性要求的。 try代码后不能既没catch块也没finally块。 try, catch, finally块之间不能添加任何代码。
五、声明自定义异常 在Java中你可以自定义异常。编写自己的异常类时需要记住下面的几点。 所有异常都必须是Throwable的子类。 如果希望写一个检查性异常类,则需要继承Exception类。 如果你想写一个运行时异常类,那么需要继承RuntimeException 类。可以像下面这样定义自己的异常类:
class MyException extends Exception{} |
只继承Exception 类来创建的异常类是检查性异常类。 下面的InsufficientFundsException类是用户定义的异常类,它继承自Exception。 一个异常类和其它任何类一样,包含有变量和方法。 每一个技术小白都有一个成为大神的梦想,现在Android菜鸟饭团就给你这个成就梦想的机会。我们提供最新的Android技术教学,只要你又耐心和毅力就一定会在这里有所收获。 Android菜鸟饭团由 南阳GDG组织发起,秉承着开放、分享、创新的原则,希望通过GDG社区的力量能够给更多的想要学习Android开发技术的小白们创造一个学习,交流,分享的环境。同往常的GDG活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。
|