java异常

Java异常处理详解及最佳实践
本文详细介绍了Java中的异常处理机制,包括try-catch-finally语句块的使用、异常类型的匹配规则以及如何自定义异常。强调了异常处理的原则,如避免庞大的try块和指定具体异常类型。同时,阐述了Error与Exception的区别,并提供了面试题解析。

一、什么是异常

        异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序。

二、关键词

        try:执行可能产生 异常的代码

        catch:捕获异常

        finally:无论是否发生异常, 代码总能执行

        throws:声明方法可能要 抛出的各种异常

        throw:手动抛出异常

try-catch:

使用try-catch块捕获异常,分为三种情况

        第一种情况 :try块中所有语句正常执行完毕,不会发生异常,那么catch块中的所有语句都将会被忽略。

        第二种情况 :try语句块在执行中遇到异常,那么在try块中其余剩下的代码都将被忽略,系统会自动生成相应的异常对象,如果这个异常对象与catch中声明的异常类型相匹配,则相应的catch块将会被执行。

        第三种情况 :try语句块在执行中遇到异常,如果这个异常对象与catch中声明的异常类型不匹配,程序会中断。

在catch块中处理异常

        加入用户自定义处理信息

        System.err.println();

三、常见的异常类型

引发多种类型的异常

        排列catch 语句的顺序:

                先子类后父类

                发生异常时按顺序逐个匹配

                只执行第一个与异常类型匹配的catch语句

 public void method(){

        try {

             // 代码段

             // 产生异常(异常类型2)

        } catch (异常类型1 ex) {

             // 对异常进行处理的代码段

        } catch (异常类型2 ex) {

             // 对异常进行处理的代码段

        } catch (异常类型3 ex) {

             // 对异常进行处理的代码段

        }

        // 代码段

}

面试题:

try-catch块中存在return语句,是否还执行finally块,如果执行,说出执行顺序?

finally先执行,然后再执行return。

try-catch- finally块中, finally块唯一不执行的情况是什么?

虚拟机被关闭。

四、声明异常

Java语言中通过关键字throws声明某个方法可能抛出的各种异常。

throws可以同时声明多个异常,多个异常用逗号隔开。

五、抛出异常 

 Java语言中通过关键字throw来自行抛出异常。

 面试题:

throw和throws的区别表现在以下三个方面

作用不同:

        throw用于在程序中抛出异常;

        throws用于声明在该方法内抛出了异常。

使用的位置不同:

        throw位于方法体内部,可以作为单独语句使用;

        throws必须跟在方法参数列表后面,不能单独使用。

内容不同:

        throw抛出一个异常对象,而且只能是一个;

        throws后面跟异常类,而且可以跟多个异常类。

异常的分类

Errory与Exception的区别:
答:都继承与Throwable这个类
Error是java程序在编译阶段出现的问题,代码将无法通过编译
Excpetion是java程序在运行阶段出现的问题,能通过编译,但是不能正常运行

六、自定义异常

         1.定义异常类        (继承Throwable类、继承Excepion 或者RuntimeException)

        2.编写构造方法,继承父类的实现

        3.实例化自定义异常对象

        4.使用throw抛出

异常处理原则

        异常处理与性能

        异常只能用于非正常情况

        不要将过于庞大的代码块放在try中

        在catch中指定具体的异常类型

        需要对捕获的异常做处理

总结

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值