java 异常处理
作者:@kuaiquxie
作者的github:https://github.com/bitebita
本文为作者原创,如需转载,请注明出处:https://www.cnblogs.com/dzwj/p/15369993.html
java 异常处理
Throwable中包括Error 和Exception,Exception包括IOException和RuntimeException
抛出异常
1.异常运算条件 ArithmeticException
2.非法索引访问数组 ArrayIndexOutOfBoundsException
3.将一个错误类型的对象存储到数组中 ArrayStoreException
4.向方法传递了一个不合法的参数 IllegalArgumentException
5.程序试图将字符串转换为一种数值类型,但该字符串不能转换为适当格式 NumberFormatException
6.拒绝访问一个类的时候 IllegalAccessException
7.请求的变量不存在 NoSuchFieldException
8.请求的方法不存在 NoSuchMethodException
异常方法
public String getMessage()
返回关于发生的异常的详细信息。这个消息在Throwable类的构造函数中初始化了
public Throwable getCause()
返回一个Throwable对象代表异常原因
public String toString()
使用getMessage()的结果返回类的串级名字
public void printStackTrace()
打印toString()结果和栈层次到System.err,即错误输出流
捕获异常
try
{
//程序代码
}catch(ExceptionName e1)
{
// catch块
}
将以上放在异常可能出现的地方
多重捕获块就是在一个try后面跟多个catch
throw关键字
如果一个方法没有捕获到一个检查性异常,那么该方法必须使用throws关键字来声明,throws关键字放在方法签名的尾部,
也可以使用throw关键字抛出一个异常,无论它是新实例化的还是刚捕获到的
finally关键字
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块之间不能添加任何代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」