关于 异常 的一些总结(自定义异常确实有用啊)

关于异常

编译错误,逻辑错误不算异常;其实是一些因为不可控的因素,不期而至的各种情况,导致程序运行的异常

用对象表示

异常的体系结构:
(1)Throwable类,所有错误或例外的超类
分为Error、Exception
Error是错误,不应该试图捕获,而是应该尽量避免,并非是几句代码就能解决的错误
Exception是例外,
分为受检异常:编译期要求必须处理的,否则,编译不通过
非受检异常,编译期间不强制要求处理,但在运行期间可能发生异常RuntimeException

受检异常包括:IOException SQLException FileNotFoundException
非受检异常有:NullPointerException ArithmeticException ArrayIndexOutOfBoundsException
一般都是编码的原因,应尽量去避免

Java的异常处理机制
抛 JVM自动抛出,也可以手动抛出
抓 catch
try catch异常   可以有多个
finally 不管是否发生异常都要执行的代码,一般用于释放资源连接
catch里应该如何处理呢
e.printStackTrace() 打印出来,堆栈信息,全面的,红色显示
e.getStackTrace()
e.getMessage()
也可以作为日志记录

throws 异常列表
实际开发中,一般底层选择throws,而上边的代码进行try catch

重写父类的方法时:异常的类型<=父类


手动抛出异常 throw
throw 异常对象
可以替代return结束某一个语句
如果throw是运行时异常,那么编译期不会要求当前方法或编译者必须编写处理代码

自定义异常
必须继承Throwable或者他的其他子类
一般是继承Exception或RuntimeException
自定义的异常只能通过throw手动抛出,JVM不会自动抛出

要注意finally和return执行的顺序
在return之前先执行finally的代码
finally中不建议写return

关于Integer
在-128~127之间使用最多,所以有个类似缓存的东西存在,这样就不用每次开辟新的Integer对象了;
如果是其他的值的话,需要每次新的对象


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值