- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在升级应用程序以使用 Symfony 3 和 PHP 7。我不断收到此错误。我不确定它的来源或修复方法。
Symfony\Component\Debug\ExceptionHandler::handle() must be an instance of Exception
最佳答案
TL;DR:您的代码中某处触发了 PHP 错误。在 PHP 5 中,它是作为一个简单的 PHP 错误触发的;在 PHP 7 中,它作为一个 Error
被抛出,现在被传递给 Symfony 的异常处理程序。
此错误可能一直存在于您的应用程序中,并且由于 error_reporting
或 display_errors
设置而被吞没。
错误处理机制在 PHP 7 中发生了变化。错误现在作为 Error
类的实例抛出,并且可以被异常处理程序捕获。参见 the documentation了解更多信息:
PHP 7 changes how most errors are reported by PHP. Instead of reporting errors through the traditional error reporting mechanism used by PHP 5, most errors are now reported by throwing Error exceptions.
As with normal exceptions, these
Error
exceptions will bubble up until they reach the first matching catch block. If there are no matching blocks, then any default exception handler installed withset_exception_handler()
will be called, and if there is no default exception handler, then the exception will be converted to a fatal error and will be handled like a traditional error.
但是,请注意 Error
类没有扩展 Exception
类(尽管它们都实现了 Throwable
接口(interface))。
由于 Symfony 异常处理程序是使用 set_exception_handler
注册为异常处理程序的方法,此处理程序将被调用,并在您的代码中抛出各种未捕获的 Error
实例,但无法处理它们,因为它根据其类型提示期望 Exception
。
目前,你可以通过实现你自己的 ExceptionHandler(你可以用它代替 Symfony 的)来解决这个问题,它实现了一个 handle(Throwable $error)
函数,让你也可以捕获PHP 错误。
关于php - Symfony ExceptionHandler 抛出关于自身的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34636656/
我知道 Exception 是所有异常的父级,但我认为当您为特定异常类设置 @ExceptionHandler 时,它应该处理该特定异常。 也许您可以指出我在以下代码中遗漏的内容,以便 MethodA
我开发了一个 Web 应用程序,其中表单验证异常应该由 @ExceptionHandler 处理(需要灵活),一般系统异常由 SimpleMappingExceptionResolver 处理(执行电
在我的应用程序中,我在 web.xml 中配置了一个错误页面。我需要根据条件覆盖特定 Controller 。在这里,当条件成立时,我需要重定向到特定的错误页面,否则应该呈现正常的错误页面。这是代码。
经过一段时间的研究和尝试不同的事情后,我仍然无法在 jUnit 集成测试中调用我的 @ExceptionHandler。请帮我理解为什么? @RequestMapping(value = "/some
我将在我的 Web 应用程序上引入全局处理程序: @ControllerAdvice public class GlobalControllerExceptionHandler { @Exce
我一直在兜圈子试图修复测试,但 SO 或其他在线资源都没有提供解决方案。我有这个@ControllerAdvice处理 MyException 的方法异常(exception)是: @Controll
这个问题在 Google 领域已被问过几次,但我似乎无法将这些解决方案应用于我的情况。我的 J2EE 应用程序使用 Spring,之前我使用 SimpleMappingExceptionResolve
我正在使用 springmvc 为客户端创建 restful api,我有一个用于检查 accesstoken 的拦截器。 public class AccessTokenInterceptor ex
我的 Controller 中有一个方法可以处理应用程序抛出的异常。所以我有一个这样的方法。 @Controller public class ExceptionController { @R
我使用 @ControllerAdvice 来处理我所有的应用程序异常: @ControllerAdvice public class ExceptionHandlingController {
我正在使用以下代码处理我的受控异常: @ExceptionHandler(MyException.class) @ResponseStatus(HttpStatus.NOT_FOUN
我构建了一个简单的 ExceptionHandler 类: class ExceptionHandler{ public function __construct(){ set
我不知道如何通过@ExceptionHandler 处理一种以上的异常。 我需要以编程方式处理这些异常,为此我需要一个共享引用。这是通过此引用“Exception ex”完成的吗?我不这么认为,因为没
我正在使用默认 AnnotationMethodHandlerAdapter,我认为它应该启用对@ExceptionHandler 的支持。不幸的是,如果调用如下所示的处理程序方法,则会抛出 Serv
我正在使用 spring 的 @ControllerAdvice 和 @ExceptionHandler 进行异常处理。任何方法都会从 Controller 中抛出自定义异常,并由相应的 @Excep
我有一个像 @RestController public class CustomerRestController { @Autowired private CustomerManag
在我的Micronaut应用程序中,我定义了ExceptionHandler,应该捕获WorkflowException并返回状态码为412且主体为HttpResponse的WorkflowExcep
我有这样的异常处理程序: @ControllerAdvice public classMyExceptionHandler extends ResponseEntityExceptionHandler
我在 spring RestController 中有这样的异常处理程序。 @ExceptionHandler(AuthException.class) public ResponseEntit
我遇到问题,然后我 try catch 异常。 这是我的类,它实现了 ResponseErrorHandler: public class ErrorGenerator implements
我是一名优秀的程序员,十分优秀!