草庐IT

Try-catch-finally

全部标签

php - catch 不工作

我很困惑。是什么导致“catch”无法正常工作?我该如何解决?getMessage());}?>实际输出[27-Apr-201009:43:24]PHPFatalerror:Uncaughtexception'Exception'withmessage'BOOM'in/mycode/exception_problem/index.php:4Stacktrace:#0{main}thrownin/mycode/exception_problem/index.phponline4期望的输出shouldhappen:BOOMPHP版本5.2.3在php_info()中,我没有看到任何可以禁用

php - 如何处理其他 try catch block 中的异常?

我的例子:classCustomExceptionextends\Exception{}classFirstClass{functionmethod(){try{$get=external();if(!isset($get['ok'])){thrownewCustomException;}return$get;}catch(Exception$ex){echo'ERROR1';die();}}}classSecondClass{functionget(){try{$firstClass=newFirstClass();$get=$firstClass->method();}catch(

用于测试 catch block 的 PHPunit

我有这样一个代码:publicfunctionone(){try{$this->two();}catch(Exception$E){$this->three();}}我如何测试调用了$this->three()函数?我尝试“按代码模拟”$this->two()并抛出错误而不是它的原始代码,但最终错误被phpunit本身捕获。尝试了setExpectedException,但它也没有解决问题-catch再次在phpunit中运行,只是被忽略了。函数$this->three()在这两种情况下都没有被调用。谢谢! 最佳答案 问题是所描述的

PHP 7 try catch : unable to catch "Catchable fatal error"

我正在玩try-catchblock:loadHTMLFile($str);$domOb->preserveWhiteSpace=false;$container=$domOb->getElementById('ormaininfotab');echo$container;//getMessage().".File:".$e->getFile().",line:".$e->getLine();}catch(Error$e){echo"Error".$e->getMessage().".File:".$e->getFile().",line:".$e->getLine();}?>我的结果

php - Node.js `crypto.final` 使加密结果与 PHP `mcrypt_encrypt` 不同

一开始,Node.js加密。//BothofkeyandIVarehex-string,butIhidetheminStackoverflow.varsecretKey=newBuffer('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','hex'),//48charsiv=newBuffer('bbbbbbbbbbbbbbbb','hex');//16charsvarstr='Thisstringwillbeencrypted.';varcipher=crypto.createCipheriv('des-ede3-cbc',sec

php - fatal error : uncaught exception without try/catch block

我试图在表单字段为空以及插入查询不成功时抛出异常。我见过有人在没有使用try/catchblock并且没有包含Exceptions类的情况下抛出异常。有谁知道我会怎么做?这是我在没有填写所有字段时遇到的错误:fatalerror:在第94行的/vagrant/web/Assignment4/Person.php中出现未捕获的异常“异常”,消息为“错误:以下字段为空-标题、电话号码、电子邮件”异常:错误:以下内容字段为空-标题、电话号码、电子邮件,位于第94行的/vagrant/web/Assignment4/Person.php调用堆栈:0.00146381681.{main}()/v

PHP 最终阻止自动加载中止

我对finallyblock和自动加载有疑问。我正在使用PHP5.5.9。这是一个最小的例子:测试.php:如您所见,我们抛出了一个异常,并希望运行一个finally和一个catchblock。Test::printIt是一种在其参数上调用echo的简单方法。类Test是通过注册的自动加载函数加载的。运行此程序打印finally1catch而不是finally1finally2catch,因此对Test::printIt(1);的调用似乎中止了finally堵塞。问题似乎是finallyblock中的自动加载。如果我们取消注释行(1),则Test已经加载到finallyblock中。在

PHP 可搜索迭代器 : catch OutOfBoundsException or check valid() method?

所以我不确定这是否是PHP的错误设计,或者是否存在处理同一界面的不一致结果的可理解逻辑。SeekableIterator接口(interface)有两个方法(seek和valid),它们要么相互冲突,要么应该一致地工作,但我看到两者。接口(interface)文档说seek应该抛出类OutOfBoundsException的异常,但这似乎否定了valid的用处,除非更新迭代器位置(使valid在抛出异常(显然必须捕获)之前返回false)。三个测试例子例子1.实现SeekableIterator的自定义类,如文档中的示例所提供的:类(class):classMySeekableIter

PhpStorm 检查错误或错误代码? try block 中未抛出的异常是意外的

我正在使用PhpStorm并在我拥有实例的子类的父类中抛出自定义异常。我没有从子类的父调用中捕获异常,因为我希望捕获它是对子类实例进行调用的代码的责任。PhpStorm提示捕获的异常没有在tryblock中抛出,但是父方法确实抛出它,这个方法是从tryblock中调用的子方法调用的。这是检查员的错误还是我真的做错了什么?下面是一些复制问题的示例代码:testMethod();}}$test=newchildClass;try{$test->doSomething();}catch(testE$e){//^---whydoesthisreportnothrowintry?//Except

php - 简单的 try/finally 与 try/catch

具有简单的功能,例如:functionhello($var){try{//dosomethingwith$varwhichmayormaynotthrowanexceptionreturn$var;}finally{return$var;}}如果将其转换为:在逻辑或处理方面是否有任何差异:functionhello($var){try{//dosomethingwith$varwhichmayormaynotthrowanexceptionreturn$var;}catch(Exception$e){return$var;}}请忽略$e没有做任何事情的事实,并忽略示例函数的简单性/无用