Java异常处理

一 异常捕获

1 用try…catch…语句处理多个异常时,要保证先捕获子类异常

2 finally语句块保证有无错误都会执行
用来保证一些必须执行的代码

3一个catch语句可以匹配多个非继承关系的异常

4 printStackTrace()可打印出方法的调用栈

二 抛出异常

1 定义Exception实例,再用throw抛出
例:throw new nullPointerException();

2 如果一个方法捕获异常后,又在catch子句中抛出新的异常,相当于把捕获的异常转换了

3 在catch中抛出异常,不会影响finally语句的执行,JVM会先执行finally,再抛出异常

4 在finally中抛出异常之后,原来在catch中的异常被屏蔽
解决:应该先用origin保存原始异常:
Exception origin = null;
再用ThrowableaddSupreessed()添加:
e.addSupressed();
最后在finally抛出

三 自定义异常

1 自定义异常时,从RuntimeException()派生出根异常,再派生出业务异常

四 NullPointerException(NPE)

1 给JVM增加
java -XX:+ShowCodeDetailsInExceptionMessages Main.java
用来开启返回异常的详细信息

五 断言

1 执行assert语句,必须给Java虚拟机传递-enableassertions参数启用断言

六 日志

1 java.util.logging,日志的七个级别:

severe ,warning,info(默认级别)(此级别以后的不会被打印),config,fine,finer,finest。

2 Logging系统在JVM启动时读取配置文件并完成初始化,一旦开始运行main()方法,就无法修改配置

配置:在JVM启动时传递参数-Djava.util.logging.config.file=。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值