草庐IT

catching

全部标签

c++ - 为什么 Try-Catch block 会影响封闭范围内的变量?

为什么外层的temp在捕捉到第一个异常后会变空?#includeintmain(){std::stringtemp("exception");intvalue;while(std::cin>>value&&value!=0){try{if(value>9)throwtemp;elsestd::cout输入:121113输出:12exception//PrintingEmptystring预期输出:12exceptionexception我用g++7.3.0编译我的代码。 最佳答案 这似乎是GCC的复制省略实现中的一个错误。C++标准

c# - 没有catch block 的finally block 是java反模式吗?

在对一些看起来像这样的代码进行故障排除时,我遇到了非常痛苦的故障排除经验:try{doSomeStuff()doMore()}finally{doSomeOtherStuff()}问题很难解决,因为doSomeStuff()引发了异常,这反过来又导致doSomeOtherStuff()也引发了异常。第二个异常(由finallyblock抛出)被抛出到我的代码中,但它没有处理第一个异常(从doSomeStuff()抛出),这是问题的真正根本原因。如果代码是这样说的,问题就会很明显:​​try{doSomeStuff()doMore()}catch(Exceptione){log.erro

exception - Go vs. 中的 panic recover try catch 用其他语言

我刚刚阅读了thispost关于Go中的panic/recover,我不清楚这与其他主流语言中的try/catch有何不同。 最佳答案 panic/recover是功能范围的。这就像说每个函数中只允许一个try/catchblock,并且try必须覆盖整个函数。这使得以与java/python/c#等使用异常相同的方式使用Panic/Recover非常烦人。这是故意的。这也鼓励人们以设计使用的方式使用Panic/Recover。您应该从panic()中恢复(),然后将错误值返回给调用者。

php - 使用 try {} catch {} 与 if {} else {} 相比有什么优势?

我正在从php中的普通mysql切换到PDO,我注意到测试错误的常用方法是使用try/catch组合而不是if/else组合。该方法的优点是什么,我可以使用一个try/catchblock而不是几个嵌套的if/elseblock来处理不同步骤(连接、准备、执行等)的所有错误吗? 最佳答案 我会使用try/catchblock,当通过代码的正常路径应该正常运行时,除非确实有一些异常情况——比如服务器关闭、您的凭据过期或不正确。我不一定会用它来处理非异常错误——比如当前用户没有担任正确的角色。也就是说,当您可以合理地预期并处理非异常情况

php - php中try-catch的性能

在php5中使用try-catch语句时需要考虑哪些性能影响?我以前在网上阅读过一些关于这个主题的旧信息,而且似乎相互矛盾。我目前必须使用的许多框架都是在php4上创建的,并且缺乏php5的许多细节。所以,我自己在使用php的try-catchs方面没有太多经验。 最佳答案 需要考虑的一点是,没有抛出异常的tryblock的成本与实际抛出和捕获异常的成本是不同的问题。如果仅在失败情况下抛出异常,您几乎可以肯定不会关心性能,因为每次执行程序都不会失败很多次。如果你在一个紧密的循环中失败了(也就是把你的头撞到砖墙上),你的应用程序可能会

php - Laravel:使用 try...catch 和 DB::transaction()

我们都使用DB::transaction()进行多次插入查询。在这样做时,应该将try...catch放在其中还是包装它?如果出现问题,事务会自动失败,是否还需要包含try...catch?示例try...catch包装事务://try...catchtry{//Transaction$exception=DB::transaction(function(){//DoyourSQLhere});if(is_null($exception)){returntrue;}else{thrownewException;}}catch(Exception$e){returnfalse;}相反,一

php - 何时使用 Try Catch block

好的,这可能是一个非常菜鸟的问题,但我发现关于这方面的PHP文档和几个Internet搜索并没有给我任何想法。WhenshouldIusetry-catchblockstoimprovemyapplication?我读到有人说我们应该只使用try-catchblock来防止fatalerror。我读到其他人说我们应该只在意外错误上使用它(等待什么?意外?如果它们是意外错误,我怎么能用try-catch来防止它们?我应该把我所有的应用程序代码放在一个tryblock中吗?)。其他人只是说try-catchblock应该在任何地方使用,因为它们也可以扩展(扩展Exception类)。最后有

php - 如何在 PHP 中有效地使用 try...catch block

我一直在我的PHP代码中使用try..catchblock,但我不确定我是否正确使用了它们。例如,我的一些代码如下所示:try{$tableAresults=$dbHandler->doSomethingWithTableA();$tableBresults=$dbHandler->doSomethingElseWithTableB();}catch(Exception$e){return$e;}所以我将多个数据库操作分组在同一个try/catchblock中,因为如果任何事务中发生任何异常,我将能够处理它。我这样做是因为我认为它比:try{$tableAresults=$dbHand

java - 使用 try/catch 防止应用程序崩溃

我一直在开发一个Android应用程序,它经常使用try/catch来防止它在不需要的地方崩溃。例如,xmllayout中带有id=toolbar的View的引用如下://seenewexamplebelow,thisoneisjustconfusing//itseemslikeIamaskingaboutemptytry/catchtry{Viewview=findViewById(R.id.toolbar);}catch(Exceptione){}此方法在整个应用程序中使用。堆栈跟踪没有打印出来,很难找到问题所在。应用突然关闭,没有打印任何堆栈跟踪。我让我的学长向我解释,他说,Th

java - 没有 "try-finally"做 "catch"有意义吗?

我看到了一些这样的代码:try{db.store(mydata);}finally{db.cleanup();}我认为try应该有一个catch?为什么这段代码会这样? 最佳答案 如果您希望当前执行的方法仍然抛出异常,同时允许适本地清理资源,这很有用。下面是一个处理调用方法异常的具体示例。publicvoidyourOtherMethod(){try{yourMethod();}catch(YourExceptionex){//handleexception}}publicvoidyourMethod()throwsYourExce