使用try catch的未处理异常的奇怪行为

从'唐

如果我去example.com/test,我的项目中有以下代码用于路由,如果test不存在,它将在我的框架中产生自定义404错误

/* Routing */
$router = new application\libraries\router();
$router->add('', ['controller' => 'main', 'action' => 'index']);
$router->add('login', ['controller' => 'Login', 'action' => 'new']);
$router->add('logout', ['controller' => 'Login', 'action' => 'destroy']);
$router->add('{controller}/{action}');

$router->dispatch($_SERVER['QUERY_STRING']);

问题是在我的当前文件的phpstorm控制台中,它给出了一个较弱的警告行未处理\ Exception行40

以下是第40行

$router->dispatch($_SERVER['QUERY_STRING']);

根据phpstorm的建议修复方法是用try-catch包围,所以我做了以下工作

try {
    $router->dispatch($_SERVER['QUERY_STRING']);
} catch (Exception $e) {
}

该警告消失了,但是如果我尝试一个不存在的URL,它将不会显示我创建的自定义错误消息。它仅在没有try-catch的情况下起作用

大卫

我不知道您使用的是哪个路由器,但是您必须实际处理该异常。因此,您所做的可能是正确的,您只需要添加一个步骤。

如果存在一条不存在的路由,并且您的路由器引发了异常,则应在catch块中编写代码以处理该异常。像这样:

try {
    $router->dispatch($_SERVER['QUERY_STRING']);
} catch (Exception $e) {
    echo $e->getMessage();
}

这是一个非常简化的示例,您的$ router对象是否可以选择仅发送404?

另外,请检查路由器引发的异常类型。例如,您可能想以不同于RouteIsPrivateException的方式处理RouteNotFoundException。您可以使用多个catch语句来检查多种类型的异常。

在这里查看有关异常的更多信息:https : //www.php.net/manual/zh/language.exceptions.php

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

try / catch块中未处理的异常

来自分类Dev

使用已定义的catch块获取未处理的异常

来自分类Dev

使用try和catch进行异常处理

来自分类Dev

不使用 try/catch 处理异常

来自分类Dev

Scala:使用 try/catch 重试异常处理

来自分类Dev

异常处理Try Catch块

来自分类Dev

使用try-catch无法处理SQL异常

来自分类Dev

我可以在Netlogo中使用try catch(异常处理)吗?

来自分类Dev

使用try / catch不会捕获异常

来自分类Dev

使用语句未处理的异常

来自分类Dev

使用检测记录未处理的异常

来自分类Dev

使用语句未处理的异常

来自分类Dev

替代多个try catch以处理异常

来自分类Dev

使用Try方法的Java异常处理

来自分类Dev

存储过程中try-catch的奇怪行为

来自分类Dev

我们可以继续使用try catch块进行异常处理吗?

来自分类Dev

使用try-catch java

来自分类Dev

Android-使用try and catch

来自分类Dev

使用try catch验证输入

来自分类Dev

Android-使用try and catch

来自分类Dev

在 FileWriter 上使用 try catch

来自分类Dev

使用FileStream并处理其奇怪的异常

来自分类Dev

使用try catch时如何知道可能的异常?

来自分类Dev

Java中的异常:使用throw或try-catch

来自分类Dev

对各种异常使用try-catch块(java)

来自分类Dev

使用OpenCV sqrt的未处理的内存异常

来自分类Dev

使用抽象函数时出现未处理的异常

来自分类Dev

使用Winston记录HAPI中所有未处理的异常

来自分类Dev

使用Boost Spirit解析语法的未处理异常