草庐IT

Try-catch

全部标签

PHP/Symfony - 为什么使用 Twig 呈现的 Controller 异常不会仅在生产模式下捕获?

我有2个Controller操作,一个通过render(controller(...))函数在另一个的twig模板中呈现。如果我在子操作中抛出异常,它只会在DEV模式下被捕获,而不会在PRODuction模式下被捕获,知道为什么以及如何绕过它吗?DefaultController.php/***@Route("/test/child",name="test_child")*/publicfunctionchildAction(Request$request){thrownew\Exception($request->getRequestUri());return$this->rende

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 可搜索迭代器 : 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没有做任何事情的事实,并忽略示例函数的简单性/无用

php - 在处理另一个异常时,我应该如何处理记录器抛出的异常?

我正在开发一个PHP项目,我在该项目中捕获异常并使用Monolog记录错误并返回一个用户友好的页面作为响应。该项目目前处于婴儿阶段,所以我只是将错误记录到一个文件中,使用Monolog的StreamHandler类在公众无法访问的应用程序目录中,随着我的进步,我意识到这可能如果存在某种IO错误,则会失败,因此我还将登录到数据库(可能是ElasticSearch)并通过电子邮件将严重错误发送给管理员。当我使用StreamHandler时,我可以看到它在无法打开文件时抛出异常。现在,我应该如何处理这种异常情况,如果日志机制本身失败,我应该如何记录它?我可以让另一个记录器处理异常,该记录器会

PHP 异常 - 是否需要 try/catch?

我开始使用“真正的”异常而不是自定义错误函数。我认为我不需要每次都使用try/catch-block,抛出一个异常也没关系,但现在由于这些未捕获的异常,我得到了一个fatalerror。当我设置error_reporting(0)时一切正常,但我想完全避免错误。有谁知道try/catch的替代方法或如何抛出异常而不会出现fatalerror?提前致谢! 最佳答案 您可以使用set_exception_handler()为此并自己处理任何未捕获的异常。您注册的回调将接收异常作为其第一个也是唯一的参数。然而,注册一个虚拟函数是可能的:在

php - OAuth2 token ,消息 : '{ "error": "access_denied" }' returned when I try to update Google Calendar using OAuth (Service Account)

我正在使用适用于PHP的Google标准库来使用日历服务,并且我已经通过GoogleAPI控制台为OAuth2.0身份验证设置了一个服务帐户类型。我的主要目标是通过批量更新用户的谷歌日历(例如:user@organisationname.com)(当用户不在线时)。例如。更新用户日历中的事件。当用户登录应用程序(使用OAuth2.0)时,他/她将为应用程序提供“管理您的日历”、“查看您的日历”和“在我不使用应用”以下代码用于使用OAuth2.0登录setApplicationName("GoogleCalendarPHPStarterApplication");$client->set

php - 什么是 PHP 中的异常,什么是 try 和 catch?

我对在PHP中使用对象/类很陌生,我对EXCEPTIONS、TRY和CATCH感到好奇在下面的示例中,我使用了所有3个。显然异常是某种触发错误的方式,但我不明白为什么?在下面的代码中,我可以很容易地显示某种错误或没有异常部分的东西吗?该示例下方是使用try和catch的示例。在我看来,这与使用if/else是一样的。我可能是错的,这只是我在一无所知的情况下看到它们的方式,我知道你可以在不使用这些的情况下用PHP编写任何代码,所以这是什么原因,使用这些东西与传统方式相比有什么好处吗?尝试捕获//andtryandcatchtry{$thumb=PhpThumbFactory::creat

php - Laravel 4 - 无法在种子或迁移类中捕获数据库异常

带有MySql数据库的Laravel4。出于某种原因,我无法在种子或迁移类中捕获数据库异常(Illuminate\Database\QueryException):代码永远不会进入catchblock。例如,如果我尝试在“名称”列是唯一的表中插入:try{$data=array('id'=>1,'name'=>'foo');DB::table('table')->insert($data);}catch(\Exception$e){$this->command->error("SQLError:".$e->getMessage()."\n");}...我总是得到这个错误:PHPWarn