草庐IT

catch-safeguarding

全部标签

php - 异常捕获 : when not to catch them?

我在PHP的ZendFramework中为我的应用程序编写了许多小型库(一组类)。我也一直在库的方法本身中捕获这些异常并将它们记录到一个文件中。然后我突然遇到一个问题,即我使用这些库的主应用程序不会因错误而退出,即使在我预期它们会因fatalerror而退出的情况下也是如此。这个问题是下面的代码一直执行到最后-它不应该有。捕获并记录库类中的大部分错误(特殊情况除外)似乎不是一个好习惯。他们应该总是按原样抛出错误吗?这是一个正确的假设吗?如果有人能帮我回答这个问题,我将不胜感激。 最佳答案 在任何语言中,异常的一般哲学是它们传达异常情

php - 使用 throw try catch 错误处理的正确方法

我在下面遇到了这个函数,我想知道这是否是使用try/catch错误处理的正确方法。publicfunctionexecute(){$lbReturn=false;$lsQuery=$this->msLastQuery;try{$lrResource=mysql_query($lsQuery);if(!$lrResource){thrownewMysqlException("Unabletoexecutequery:".$lsQuery);}else{$this->mrQueryResource=$lrResource;$lbReturn=true;}}catch(MysqlExcept

php - Symfony 3 中的 Catch-all 路由

我在Symfony2中有一个包罗万象的回退路线,但我无法在Symfony3中工作。我尝试了这个确切的语法(我的Symfony2路由的逐字副本)但没有用。fallback:path:/{req}defaults:{_controller:MyBundle:Default:catchAll}requirements:req:".+"我怎样才能让它在Symfony3中工作?(这实际上是唯一阻止我使用Symfony3并让我保持在v2.8的东西) 最佳答案 这对您有帮助:route1:path:/{req}defaults:{_control

php - try catch 失败的包含

这是一个谷歌搜索一个小时似乎无法解决的简单问题。如何捕获PHP中的失败包含?对于以下代码:try{include_once'mythical_file';}catch(Exception$e){exit('Fatal');}echo'?';由于mythical_file不存在,我得到输出“?”。我知道PHP无法捕获所需的失败,因为它会触发警告错误,但是在这里呢?捕获失败包含的最佳方法是什么?例如以下作品:(include_once'unicorn')orexit('!');但它不会触发异常,所以我无法检索文件、行和堆栈上下文。 最佳答案

php - 带有 try catch 的 PDO 事务语法

使用PDO事务和trycatch时首选的语法是什么?为什么?$dbh->beginTransaction();try{}catch(Exception$e){}或try{$dbh->beginTransaction();}catch(Exception$e){} 最佳答案 现有的答案似乎表明,由于$dbh->beginTransaction()可能会抛出一个PDOException,所以它应该在同一个try中实际事务代码块,但这意味着rollBack()代码本身是错误的,因为它可以在没有事务的情况下调用rollBack(),这也可以

java - try-catch block 的放置会影响性能吗?

放置try-catchblock会影响性能吗?示例1:try-catchblock在while循环中while(true){try{//...readfromafile}catch(EOFExceptione){break;}}示例2:try-catchblock环绕while循环try{while(true){//...readfromafile}}catch(EOFExceptione){//:P}从逻辑上讲,这两个例子是等价的,但我更喜欢哪个呢? 最佳答案 Shouldjavatryblocksbescopedastightl

java - 处理 Java 字节码中的 Try/Catch 异常? ("stack height inconsistent")

我正在尝试在java字节码中进行一些错误处理。我首先尝试实现一些类似catch的子例程,我会在其中检查错误情况,然后跳转到适当的子例程,有点像:iconst_1iconst_0dupifeqcalldiverrgotoenddivtestcalldiverr:jsrdivErrorenddivtest:idiv...Moreinstructions...divError:getstaticjava/lang/System/outLjava/io/PrintStream;ldc"Ohdearyoudividedby0!"invokevirtualjava/io/PrintStream/p

java - IDE 强制用 try/catch 包围而不抛出异常

我了解已检查异常和未检查异常之间的区别。Java编译器强制程序员要么用try/catchblock包围已检查的异常,要么在方法签名中添加throw声明。但是有时我看到在Eclipse中,编译器只给我一个选项,用try/catchblock包围语句而不抛出它。为什么会这样?这是因为在继承层次结构中,类(包含可能产生异常的代码)位于顶部吗?例如,我正在为Hadopp映射器编写映射函数:publicvoidmap(BytesWritablekey,Textvalue,Contextcontext){String[]fields=value.toString().split("\t");Str

java - try,catch,finally的执行顺序是什么

这个问题在这里已经有了答案:DoesafinallyblockalwaysgetexecutedinJava?(51个答案)Whatcomesfirst-finallyorcatchblock?(8个答案)关闭9年前。如果我们在try中给出这样的return语句,执行顺序会是怎样try{------------returna;}catch{}finally{}这里如果try中有return,执行顺序是怎样的。请告诉我

java - Hibernate、Spring、@Transactional - 围绕 try/catch?

我正在使用Spring3和Hibernate3.6开发一个网络应用程序。我对@Transactional注释和代码结构有一些疑问。->当我使用@Transactional(使用Spring进行事务管理)时,是否必须在调用它们时使用try/catch包围@Transactional注释的方法?例如,当我得到一个加载、更改并返回一个对象的方法时,我从另一个类调用它:我是否必须用try/catch包围调用?也许出了什么问题,没有返回对象,数据库连接失败..我不知道。直到现在,我认为@Transactional关心所有可能发生的异常,并在发生错误时回滚此事务中的每个操作。但如果它发生了,我必须