JAVA的异常机制

异常概述
当程序运行时,发生了程序员不愿看到的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,我们是任程序自生自灭,立刻退出终止,还是输出错误给用户勒?
所以Java提供了更加优秀的解决办法:异常处理机制,异常处理机制就是能让程序在异常发生时,按照代码预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,并且保持代码的清晰。
异常体系
Java标准库内建了一些通用的异常,这些类以Throwable(可抛出的)为顶层父类。他的子类分为Error(错误,不可恢复的)和Exception(异常,是可以恢复的)
Exception分为运行时异常(RuntimeException)和可检查的异常(CheckedException)
常见的运行时异常:类型转换异常(ClassCastException),空指针异常(NullPointerException),算术异常(ArithmeticException),索引越界异常(IndexOutOfBoundsException)
常见的可检查异常:输入输出异常(IOException);SqlException
常见Error:OutOfMemoryError(内存溢出错误)
异常处理
自己处理:try-catch-finally
1.try块:负责监控可能出现异常的代码
当里面出现异常代码时,后面代码不会执行
2.catch块:负责捕获可能出现异常的代码,并进行处理,
可以有多个catch块
异常之间没有关系的时候,多个chatch块。
异常之间继承关系的时候,子类的catch块放在前面(向上造型)
处理方式相同时,ClassCastException | IOException
3.finally块:负责清理各种资源,不管有没有异常都会运行
return时finally仍然执行
system.exit方法 finally不执行
不要在finally中抛出异常
其中try块是必须的,catch和finally至少存在一个
try-catch-finally可以嵌套
自己不处理,抛给调用者处理:throws 最终会有程序处理异常,最差的结果时JVM处理
1.throws:在方法签名上表明该方法有可能抛出异常,指导调用者处理
2.throw:在代码中抛出异常
自定义异常
如果要自定义异常类,则扩展Exception类即可,因此这样的自定义异常都属于检查异常(checked exception)。如果要自定义非检查异常,则扩展自RuntimeException。
自定义的异常一般包含如下的构造函数:
一个无参构造函数。
一个带有String参数的构造函数,并传递给父类的构造函数。
一个带有String参数和Throwable参数,并都传递给父类构造函数
一个带有Throwable 参数的构造函数,并传递给父类的构造函数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值