关于Java异常10件事儿<上>20170510

  • Checked vs. Unchecked

Checked 异常必须明确地被捕获在一个方法中,或者在方法的throws子句中声明。 Unchecked的异常是由无法解决的问题引起的,比如除以零,空指针等。
Checked 异常非常重要,因为你希望使用API的其他开发人员知道如何处理异常。


  • 异常管理的最佳做法:

如果一个异常可以被正确处理,那么它应该被捕获,否则,它应该被抛出。


  • 为什么在try中定义的变量不能用于catch或者finally?
    在以下代码中,try块中声明的字符串不能用于catch子句。代码无法通过编译。
try {
    File file = new File("path");
    FileInputStream fis = new FileInputStream(file);
    String s = "inside";//这儿定义的s,是不能通过编译的
} catch (FileNotFoundException e) {
    e.printStackTrace();
    System.out.println(s);
}

原因是你不知道在try块中的哪个位置会抛出异常。很有可能在对象被声明之前抛出异常。


  • 为什么Double.parseDouble(null)和Integer.parseInt(null)抛出不同的异常?
    它们确实抛出了不同的异常,这是JDK的问题。
    它们是由不同的开发人员开发的,所以不值得太多的思考。
Integer.parseInt(null); 
// throws java.lang.NumberFormatException: null

Double.parseDouble(null); 
// throws java.lang.NullPointerException

  • Java中常用的运行时异常
    当条件不满足时,可以在if语句中使用如下代码:
if (obj == null) {
   throw new IllegalArgumentException("obj can not be null");

原地址http://www.programcreek.com/2013/10/top-10-questions-about-java-exceptions/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值