java 异常处理

本文介绍Java异常处理的基本概念,包括try、catch、finally等关键字的作用及使用方法。探讨了异常的分类、自定义异常、异常链等高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作用:使程序中的异常处理代码和正常业务代码分离,保证程序更加优雅,提高健壮性。

依赖于 try ,catch,finally,throw和throws五个关键字实现

try{

//业务代码块

……

}

catch (Exception e)

{

alter 输入不合法

goto retry

}

异常的继承体系:非正常情况:error和exception,都继承自Throwable。error错误,系统崩溃,虚拟机错误,动态连接失败等,无法恢复或不可捕获。IndexOutOfBoundsException,数组越界异常,NumberFormatException,数字格式异常,ArithemeticException,除0异常,NullPointerException,空指针异常

先捕获小异常,再捕获大异常。

java7多异常捕获:异常之间用竖线隔开。捕获多种类型的异常时,异常变量有隐式的final修饰,程序不能对异常变量重新赋值。

访问异常信息:getMassage():返回该异常的详细描述字符串;printStackTrace():将该异常的跟踪栈信息输出到标准错误输出。printStackTrace(PrintStream s)将该异常的跟踪栈信息输出到指定输出流;getStackTrace:返回该异常的跟踪栈信息。

finally回收资源:try块里打开的物理资源(数据库连接,网络资源和磁盘文件),必须显式回收。在最后一个catch块后添加finally块。通常不要再finally块中用return和throw方法。处理中try块为必须。catch块和finally块必须至少出现一个。

异常处理的嵌套

JAVA 9增强的自动关闭资源的try语句。

两种异常:Checked异常和Runtime异常。即编译阶段被处理的异常和运行阶段被处理的异常。

Checked:1.知道如何处理:try catch;2,不知道如何处理:定义该方法时声明抛出该异常。

1.   使用throws声明抛出异常(系统自动抛出异常,声明可能抛出异常):当前方法不知道如何处理该异常,交给上一级调用者处理,如果main方法也不知如何处理,用throws抛出该异常,交给JVM处理:打印异常的跟踪栈信息,并终止程序运行。

可以声明抛出多个异常:throws ExceptionClass1,ExceptionClass2...

方法重写时声明抛出异常的限制:子类方法声明抛出的异常不允许比父类方法声明抛出的异常多,要为fu父类异常类的子类或相同。

2.   使用throw声明抛出异常(程序自行抛出异常,抛出一个实际的异常)

自定义异常类:继承runtime类

catch 和throw同时使用:一个异常出现时,由几个方法协作才可以处理该异常。catch块里调用throw

JAVA7增强的throw语句

异常链:

表现层:用户界面;中间层:实现业务逻辑;持久层:保存数据

Java的异常跟踪栈

异常处理规则:

不要过度使用异常,不要使用过于庞大的try块,不要忽略捕获的异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值