关于异常面试题

本文探讨了异常处理的重要性,包括其在提升代码优雅性和健壮性的作用。讲解了try-catch机制,如何抛出和捕获异常,以及如何自定义异常类,区分运行时异常与普通异常。最后剖析了异常与错误的区别,强调了严重错误与程序员可控的异常处理策略。
摘要由CSDN通过智能技术生成
为什么要异常处理,如何异常处理,如何自定义异常,运行期异常和普通异常有什么区别,异常和错误有什么区别?

异常:程序出现不正常情况后,程序将会跳出当前环境,并且抛出异常。

  1. 为什么要异常处理:

    让程序异常代码和正常代码分开,保证程序代码更加优雅,并提高程序的健壮性

  2. 如何异常处理

    • try…catch捕获异常
    • 使用throws抛出异常
    • 使用throw抛出异常
    • 自定义异常类
  3. 如何自定义异常

    用户自定义异常都应该继承Exception基类,如果希望自定义Runtime异常,则应该继承RuntimeException基类。定义异常类时通常需要提供两个构造器:一个是无参数的构造器;另一个是带一个字符串参数的构造器,这个字符串将作为该异常对象的描述信息(即异常对象的getMessage()方法的返回值)

    public class AuctionException extends Exception{
       public AuctionException(){
    
       }
       public AuctionException(String msg){
          super(msg);
       }
    }
    
  4. 运行期异常和普通异常有什么区别

    • RuntimeException:运行时异常,我们必须修正代码,这些异常由于逻辑错误产生的,不会被编译检查出来,需要程序员自行捕获,像NullpointException(空指针异常),ClassCastException (类型转 换异常),IndexOutOfBoundsException(数组越界异常)
    • 非RuntimeException:编译期异常,必须处理,否则程序编译无法通过,这类异常在编译时编译器会提示需要捕获,如果不进行捕获则编译错误。IOException
  5. 异常和错误有什么区别?

    • error:程序无法处理的严重错误,一般和操作者无关,开发者和程序无法处理,JVM直接终止线程
    • Exception:程序员可控,捕获处理后,程序可继续运行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值