摘要:网上关于关于异常的使用,也是寥寥无几。异常处理不能代替简单的测试,在中,与执行简单的测试相比,捕获异常所花费的时间大大超过前者。不要羞于传递异常理解未必非要在函数中捕获异常,也可以将它抛出,由高层次的函数通告用户发生错误。
在php下面的异常,真的一言难尽啊。网上关于php关于异常的使用,也是寥寥无几。最近在学习java,看到书(java核心编程 卷1)写关于异常的使用建议,觉得还是不错。
为什么要使用异常?
传统的处理方式是返回一个特定的错误的答案,调用这个方法的方法对其进行分析。但是并不是在任何情况下都能够返回一个错误编码。有可能无法明确的将有效数据与无效数据区分。一个返回整形的方法就不能简单地通过返回-1表示错误,因为-1很可能是一个完全合法的结果
突然想到一点,吐个槽:php接收数据,偷点懒,这么写empty($_GET["a"]) 。但是如果传过来是0,那么程序就出错了。好像用mysqli的时候后,会有三个返回值,如果简单用的empty,也会有问题。
1 异常处理不能代替简单的测试,在java中,与执行简单的测试相比,捕获异常所花费的时间大大超过前者。
理解:不能总是依靠异常来处理问题,如果可以在通过简单的判断,就能够避免。比如,对于分页,page,size。如果没有传,那么可以直接赋值page =1, size = 0;
2 不要过分地细化异常
3 利用异常层次结构
理解:2,3感觉可以放在一起理解,使用合理的异常结构,合理的异常类。这个地方有点像是程序的扩展性,可读性和效率上的平衡,比如代码的长度,如果一个函数里面的代码过长,可以抽出一些内容作为一个方法,再去调用它。
4 不要压制异常
理解:捕获到异常而不去处理它。这样会压制异常。
5 在检测错误时,苛刻要比放任更好
理解:在有错误发生时,尽量还是抛出一个异常比直接抛出一个null或者自定义的类型要好。但是我觉得如果可以用默认值去处理,像1中分页的例子,而不是让程序中断。我觉得这样在某些情况下,会更好一点。
6 不要羞于传递异常
理解:未必非要在函数中捕获异常,也可以将它抛出,由高层次的函数通告用户发生错误。php好像没有这种写法,- -。
如果有理解不正确的地方,希望可以指出。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/30192.html
摘要:异常也就是指程序运行时发生错误,而异常处理就是对这些错误进行处理和控制。有两个重要的子类异常和错误,二者都是异常处理的重要子类,各自都包含大量子类。需要注意的是,一旦某个捕获到匹配的异常类型,将进入异常处理代码。 1,异常现象 程序错误分为三种:1,编译错误;2,运行时错误;3,逻辑错误。 编译错误是因为程序没有遵循语法规则,编译程序能够自己发现并且提示我们错误的原因和位置,这...
摘要:不受检查异常为编译器不要求强制处理的异常,检查异常则是编译器要求必须处置的异常。潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合。当运行时系统遍历调用栈而未找到合适的异常处理器,则运行时系统终止。异常处理涉及到五个关键字,分别是。 概念 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。 异常是程序中的一些错误,但并不是所有的错误都是异常,并...
阅读 3337·2022-01-04 14:20
阅读 3106·2021-09-22 15:08
阅读 2187·2021-09-03 10:44
阅读 2314·2019-08-30 15:44
阅读 1490·2019-08-29 18:40
阅读 2654·2019-08-29 17:09
阅读 2988·2019-08-26 13:53
阅读 3220·2019-08-26 13:37