Java异常机制

Error和Exception

软件程序在运行过程中,可能会遇到许多问题,我们叫做异常(Exception)
异常指程序运行中出现的不期而至的各种情况,如:文件找不到,网络连接失败,非法参数等
三种类型的异常:

  1. 检查性异常:最具代表性的就是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个文件时,文件不存在,就会发生异常,这些异常在编译的时候不能被简单忽略
  2. 运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略(在编译时看不见,只能在运行中才能看到)
  3. 错误:错误不是异常,错误是脱离程序员控制的问题。错误在代码中经常被忽略。例如:栈溢出,错误在编译时也找不出来

异常体系结构

Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超标
**在Java API中定义了两种异常,错误Error和异常Exception
在这里插入图片描述

Error

在这里插入图片描述

Exception

在这里插入图片描述

异常处理机制

异常处理五个关键字:try、catch、finally、throw、throws
try和catch一起,可以不要finally,finally用在IO流,资源,关闭的情况

  1. 抛出异常:throw,throws
  2. 捕获异常:假设要捕获多个异常:从小到大

自定义异常

在这里插入图片描述
用户自定义异常类,只需继承Exception类即可

在IDEA中,如果出现波浪线的话,可以通过Alt+Enter来改正

总结

  1. 处理运行时异常时,采用逻辑去合理规避同时辅助 try-catch 来处理
  2. 在多重catch后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
  3. 对于不确定的代码块,也可以使用try-catch,处理潜在的异常
  4. 尽量去处理异常,而不是简单的调用 printStackTrace()去打印输出
  5. 根据不同的需求去具体处理异常
  6. 尽量添加finally语句块去释放占用的资源
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值