lesson5:java异常机制总结

一.为什么需要异常

    异常机制是一门成熟语言的标准,异常机制可以使得程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅和更加健壮。

二.异常的分类和继承关系

    1.Java中的异常有两种,即编译时和运行时异常。编译时异常是在编译时就要被处理的异常,提醒程序员需要处理编译时就可能遇到的异常。而运行时异常则无需处理。
    2.常见异常继承关系:
常见异常类继承关系
我们可以看到Error(错误)和Exception(异常)都继承自Throwable这个接口,Error一般与虚拟机相关,我们无法恢复或不可能捕获,当程序发生错误时,程序则发生奔溃中断。

三.异常的处理和自定义异常

    Java中的异常处理,主要是由5个关键字处理,即try catch finally throws throw;简单的讲一讲各个关键字的作用:try后面跟着{},{}里面的代码块是可能发生异常的代码,后面一般会跟着catch(异常类型){},也有可能有多个catch,finally一般是跟在catch后面的,如果有finally这个关键字,那finally这个关键字后面的代码块总是被执行,需要注意的是除了try块,catch finllay块都不是必须的,但至少有其中之一。throws 是在方法签名时声明该方法可能会抛出一个异常,throw后面则是跟着具体的异常对象;

1.一般处理

try{
     // 程序代码
}catch(ExceptionName e1){
    //Catch 块
}

2.多重捕获

try{
     // 程序代码
}catch(异常类型1 异常的变量名1){
     // 程序代码
}catch(异常类型2 异常的变量名2){
     // 程序代码
}catch(异常类型2 异常的变量名2){
     // 程序代码
}
有个点注意下:多重捕获是要么多个异常类型没有继承关系,如果有先捕获子类型,再捕获父类型。

3.带finally的异常处理

try{
     // 程序代码
}catch(异常类型1 异常的变量名1){
     // 程序代码
}catch(异常类型2 异常的变量名2){
     // 程序代码
}catch(异常类型2 异常的变量名2){
     // 程序代码
}fially{
    //一般是释放资源
}

4.访问异常信息

如果捕获到异常则在cath块中有几个常用的方法提供给我们:
    1.getMessage();返回异常的详细字符串;
    2.printStackTrace();将异常的跟踪栈信息输出到标准输出;
    3.printStackTrace(PrintStream S);将异常的跟踪栈信息输出到指定输出流中;
    4.printStackTrace(PrintStream S);返回该异常的跟踪栈信息。
try{
     // 程序代码
}catch(ExceptionName e1){
    //Catch 块
e1.printStackTrace();
}

5.throws throw关键字的使用

权限符 返回值 方法名() throws ExceptionName
{
     // Method implementation
     throw new ExceptionName ();
}
throws有几个点注意下:
     1只能在构造方法、方法中使用;
     2.谁调用谁处理;
     3.抛出的异常可能是多个,用,隔开。

6.自定义异常

所有异常都必须是 Throwable 的子类。
如果希望写一个检查性异常类,则需要继承 Exception 类。
如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。

7.可能会遇到的面试总结

参考博客https://blog.csdn.net/android_seven/article/details/82499337

本文如果不正之处。欢迎大家批评指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值