在项目的开发过程中前后端一般会遇到很多的异常,这些异常既包括系统定义的异常,也有系统没有定义而程序开发人员根据程序的需要自定义的异常。
自定义异常都应该继承自Exception基类,如果希望自定义运行时异常,则应该继承RuntimeException基类。自定义的异常类通常需要提供两个构造方法,一个是无参构造方法,一个是带有一个字符串参数的构造方法,其中的字符串参数作为该异常对象的描述信息,此信息通过调用父类的有参构造方法将异常对象的描述信息传递给Throwable类中detailMessage成员变量,再通过异常对象继承自Throwable类的getMessage()方法获得自定义异常类的描述信息。
如下面的InsufficientFunds类是自定义的从Exception类继承的异常类。
在InsufficientFunds异常类中,定义了一个不带参数的构造方法和一个带异常信息的字符串参数的构造方法,其中带参数的构造方法中通过super调用父类的构造方法,实现将异常信息字符串传递给从Throwable类中继承而来的detailMessage属性,detailMessage属性是该异常对象的描述信息。(www.daowen.com)
如果想将自定义异常类定义成运行时异常类,则把自定义异常类的基类改成Runtime Exception即可。
【例6.19】在程序Example6_19中,定义了一个buyBusTicket()方法来模拟用微信支付乘坐公交车。在该方法中,如果参数money值大于等于2不会发生异常,如果参数money值小于2时,用throw手动抛出自定义InsufficientFunds异常对象,且在buyBusTicket()方法中并没有做异常处理,由于InsufficientFunds属于编译异常,因此在buyBusTicket()方法中如若不用try-catch进行处理,则在buyBusTicket()方法首部用throws InsufficientFunds对方法可能抛出的InsufficientFunds异常类型进行声明,交由调用buyBusTicket()方法的main()方法处理,因此在main()方法中用try-catch进行捕获处理。在catch块中,用e.getMessage()方法获得异常信息后,再用System.out.println()进行输出。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。