自学Java第二十六课
今天学习了异常,在我学习C++时也接触过异常,我印象最深的是throw和try..catch两个处理异常的方法。在今天所学习的内容中也有相似的内容。
异常:程序出现不正常的情况,例如报错、无法编译...
Throwable包括Error、Exception,Exception包括RuntimeException和非RuntimeException两大类。
Error:严重问题,不需处理。Exception:异常类,程序本身可处理的问题。 RuntimeException:编译期不检查,出现问题,修改代码。非RuntimeException:编译期必须处理,否则不能运行。
JVM默认处理方案
1、把异常的名称、异常原因及异常出现的位置输出在控制台;
2、程序停止执行。
异常处理
1、try...catch
try{
可能出现异常的代码;
}catch(异常类名 变量名){
异常处理代码
}
2、throws 由于我们并没有全部的权限去全部处理
throws 异常类名 注:在方法的括号后面
运行时异常:把异常抛出
编译时异常:采用throws,谁调用谁处理。
Throwable成员方法
public String getMessage() | 返回异常的原因 |
public String toString() | 返回可抛出的原因 |
public void printStackTrace() | 在控制台输出异常信息 |
三个方法,public void printStackTrace()对于异常的信息最详细,使用最多。
所有RuntimeException及其子类称为运行时异常,其他为编译时异常。
编译时异常(受检异常):必须显示处理,否则程序会错误,无法编译。
运行时异常(非受检异常):无需显示处理,可和编译时异常一样处理。
自定义异常,自己定义的异常,给出提示信息。
public class 异常类名 extends Exception{无参构造;带参构造}
throws | throw |
方法声明之后,跟的是异常类名 | 方法体内,跟的是异常对象名 |
抛出异常,由方法调者这处理 | 抛出异常,方法体内语句处理 |
异常可能发生 | 异常一定发生 |
明天将会学习集合。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署