我从php中的普通mysql切换到PDO,我注意到测试错误的常用方法是使用try / catch组合,而不是if / else组合。
该方法的优点是,我可以使用一个try / catch块而不是几个嵌套的if / else块来处理不同步骤(连接,准备,执行等)的所有错误吗?
除非确实存在某些特殊情况,否则我应该使用try /
catch块来遍历代码的正常路径而不会出错,除非确实存在某些特殊情况,例如服务器宕机,凭据过期或不正确。我并不一定要使用它来处理非异常错误-
就像当前用户没有扮演正确的角色一样。也就是说,当您可以合理地预期并处理不是异常情况的错误时,我认为您应该进行检查。
在您描述的情况下-设置并执行查询,try /
catch块是一种很好的处理方式,因为您通常希望查询成功。另一方面,您可能想要检查结果的内容是否符合控制流逻辑的期望,而不仅仅是尝试使用对您的目的无效的数据。
您要注意的一件事是尝试/捕获的草率使用。尝试/捕获不应该用来保护自己免受不良编程的侵害-“我不知道如果这样做,将会发生什么,所以我将其包装在尝试/捕获中,并希望获得最好的”编程。通常,您希望将捕获的异常类型限制为与代码本身不相关的异常(服务器关闭,凭据错误等),以便您可以查找和修复与代码相关的错误(空指针等)。
)。
问题内容: 有人可以告诉我为什么对node.js如此大惊小怪吗?与用php框架编写的常规网站相比,用node.js编写的常规网站(比如博客)是否更快?我知道用node.js编写的Web服务器将比apache快,但是不创建线程或类似对象的真实Web应用程序呢? 问题答案: 编辑: 有两个主要优点: 速度!(性能) Node.js是事件驱动和非阻塞的,并且非常擅长处理并发请求。 这是指向 Apache
问题内容: 以下三个功能中哪个更有效? 请以可接受的具体逻辑答复。 问题答案: 前者是更有效时,是。两者何时不相同。与的比较只是两个32位整数的比较,这是非常快速的运算。抛出异常的代价很高,因为应该创建新对象并且应该填充堆栈跟踪。 三进制运算符与语句完全一样有效,因为两者都被转换为相同的字节码。
问题内容: 用…实现事情 似乎 已经 很简单 了… 与 ngResource相比 ,使用Restangular 有哪些优点/缺点? 1.1.3 将返回承诺,并且可以使用[最新的PRcommit来实现。将来会提供支持来支持Restangular所做的其他动词吗?如果发生这种情况,Restangular似乎将消失并变得不耐烦。 问题答案: 我是Restangular的创建者。 我已经在自述文件中创建了
我们的组织有一个必需的编码规则(没有任何解释),即: if...else if构造应该用else子句终止 示例1:
本文向大家介绍在C#中使用if / else和switch-case有什么区别?,包括了在C#中使用if / else和switch-case有什么区别?的使用技巧和注意事项,需要的朋友参考一下 Switch是一个选择语句,它基于具有match表达式的模式匹配从一个候选列表中选择一个要执行的switch部分。 如果针对三个或更多条件测试单个表达式,则switch语句通常用作if-else构造的替代
问题内容: 给定以下代码段,有什么明显的区别? 与 还是单出口原则在这段代码中会更好… 有没有明显的性能差异?您是否觉得其中一个比另一个更可维护/可读? 问题答案: 在第二个示例中,您非常清楚地指出两个条件是互斥的。 对于第一个,并不清楚,并且在(不太可能)的事件中,在两个if之间添加to的分配,逻辑将发生变化。 假设将来有人在第二个if之前添加。 当然,这不太可能发生,但是如果我们在这里谈论可维