随笔 - 217  文章 - 4  评论 - 4  阅读 - 23587

自学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
方法声明之后,跟的是异常类名 方法体内,跟的是异常对象名
抛出异常,由方法调者这处理 抛出异常,方法体内语句处理
异常可能发生 异常一定发生

明天将会学习集合。

posted on   跨越&尘世  阅读(36)  评论(0编辑  收藏  举报
编辑推荐:
· 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上本地化部署
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示