HIT软件构造异常

1.异常按结构层次的分类:运行时异常与其他异常。其中运行时异常不应被捕获,是由于程序员自己的代码书写造成的,比如空指针引用,数组越界等异常。(可以被捕获但没必要),与用户的输入没有关系。而其他异常比如输入异常这些都是用户使用时造成的,我们要对这些异常尽可能的包容,通过catch来让用户重新输入或者打印出消息后再退出。

2.checked异常的处理:catch或者继续throw给调用者,注意,catch模块可以继续抛出异常,而这时异常的种类可能会发生改变。编译器会帮助我们检查是否为异常提供了相应的处理机制,如果没有提供相应的处理机制编译器就会报错。

3.unchecked异常包括error与Runtime异常,编译器不会检查这种类型的异常。

4.checked异常的处理步骤:1.声明本方法可能会发生异常(在规约以及方法声明中都要提及)

2.抛出异常。3.(try,catch,finally)捕获并处理异常。

5.LSP:子类型抛出的异常不能比父类型更宽泛(注意不是数量的多少!而是涵盖范围的广度)

6.创建自己的异常类:直接继承Exception类即可,注意对构造方法的override。

7.捕捉异常:当发生异常之后,当前的程序立刻停止执行,同时在catch块中寻找最恰当的ctach块。finally块无论如何都会执行。

8.如何阅读stack trace:理解csapp中函数的调用栈即可,stack trace就相当于将栈中的内容逐一弹出。

9.断言:不会影响运行时的性能(使用时所有assertion都会被disabled,这里ppt前后矛盾,不影响指的应该是关闭后不影响)

对用户尽可能包容,使用异常,对自己狠一点,使用assertion。断言主要应用于开发阶段发现bug。

断言和异常处理可以处理同样的错误。

最后一个知识点:注意checkrep()的书写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值