异常

异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致 JVM 的非正常停止。
 
异常的根类是 java.lang.Throwable ,其下有两个子类:
java.lang.Error java.lang.Exception
 
Error: 内存溢出,系统崩溃
 
Throwable 中的常用方法:
public void printStackTrace() : 打印异常的详细信息。
包含了异常的类型 , 异常的原因 , 还包括异常出现的位置 , 在开发和调试阶段 , 都得使用 printStackTrace
public String getMessage() : 获取发生异常的原因。
提示给用户的时候 , 就提示错误原因。
public String toString() : 获取异常的类型和异常描述信息 ( 不用 )
 
 
异常分类
异常 (Exception) 的分类 : 根据在编译时期还是运行时期去检查异常
编译时期异常 :checked 异常。在编译时期 , 就会检查 , 如果没有处理异常 , 则编译失败。 ( 如日期格式化异常 )
运行时期异常 :runtime 异常。在运行时期 , 检查异常 . 在编译时期 , 运行异常不会编译器检测 ( 不报错 ) ( 如数学异
)
 
异常的处理
Java 异常处理的五个关键字: try catch fifinally throw throws
Objects 非空判断
它由一些静态的实用方法组成,这些方法是 null-save (空指针安全的)或null-tolerant (容忍空指针的),那么在它的源码中,对对象为 null 的值进行了抛出异常操作。
public static <T> T requireNonNull(T obj) : 查看指定引用对象不是 null
查看源码发现这里对为 null 的进行了抛出异常操作:
public static < T > T requireNonNull ( T obj ) {
if ( obj == null )
throw new NullPointerException ();
return obj ;
}
 
关键字 throws 运用于方法声明之上 , 用于表示当前方法不处理异常 , 而是提醒该方法的调用者来处理异常 ( 抛出异常 ).
 
 
Throwable 类中定义了一些查看方法
public String getMessage() : 获取异常的描述信息 , 原因 ( 提示给用户的时候 , 就提示错误原因。
public String toString() : 获取异常的类型和异常描述信息 ( 不用 )
public void printStackTrace() : 打印异常的跟踪栈信息并输出到控制台。
 
什么时候的代码必须最终执行?
当我们在 try 语句块中打开了一些物理资源 ( 磁盘文件 / 网络连接 / 数据库连接等 ), 我们都得在使用完之后 , 最终关闭打开
的资源。
 
当只有在 try 或者 catch 中调用退出 JVM 的相关方法 , 此时 fifinally 才不会执行 , 否则 fifinally 永远会执行。
要求多个 catch 中的异常不能相同,并且若 catch 中的多个异常之间有子父类异
常的关系,那么子类异常要求在上面的 catch 处理,父类异常在下面的 catch 处理。
 
如果 fifinally return 语句 , 永远返回 fifinally 中的结果 , 避免该情况 .
 
自定义异常
 
异常类如何定义 :
1. 自定义一个编译期异常 : 自定义类 并继承于 java.lang.Exception
2. 自定义一个运行时期的异常类 : 自定义类 并继承于 java.lang.RuntimeException
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值