首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >苗条Framewrok异常处理

苗条Framewrok异常处理
EN

Stack Overflow用户
提问于 2014-01-24 02:53:58
回答 1查看 7.5K关注 0票数 1

我对slim框架很陌生,并且很难在Slim中设置异常处理,我的要求是在代码中发生意外事件时重定向到错误页面。

试过这段代码

代码语言:javascript
复制
$smartView= new \Slim\Views\Smarty();
$app = new \Slim\Slim(array(
'debug' => false,
'view' => $smartView,
'templates.path' => '../templates/',
));
$app->error(function ( Exception $e ) use ($app) {
echo "my exception print here : " . $e;
});

在我的index.php文件中,但苗条仍然调用它的默认异常处理程序。

这是我的路由器呼叫

代码语言:javascript
复制
$app->get('/game', function () use ($app) {
   try{
        $facebook = new Facebook(array(
            'appId'  => appid,
            'secret' =>appsecret,
            'cookie' => true,
            'allowSignedRequest' => true
        ));

            $oStuff = new models\User ();
            $oStuff->fbLogin($facebook); // To get User details and game select
   }
    catch (\Exception $e) {
        //echo 'Caught exception: ',  $e->getMessage(), "\n";
       echo $e;
       echo "catch exception";
    }
});

这是我的函数有一些错误

代码语言:javascript
复制
 public function fbLogin($facebook)
    { 
      $app = \Slim\Slim::getInstance(); 
      $user = $facebook->getUser() // here is syntax error so i need to get it in my  exception

 }

请帮我解决这个问题,谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-14 08:41:32

如果像catch语句一样捕捉到自己的异常,就不会让Slim为您处理异常,因此永远不会输入自定义错误方法。

您可以看到有关处理这里错误的官方声明,还可以在第1405行查看代码源这里

你在这里有两个选择:

1)不尝试/捕获异常,让Slim处理所有异常

2)尝试/捕捉并在捕获中抛出一个新的异常。(不确定它是否非常有用)

此外,在引导应用程序时,请考虑一下调试标志,如果为true,您将拥有完整的异常堆栈跟踪,如果为false,则需要在"error“方法中向用户显示一些很好的东西。

您还可以编写自己的日志写入,这样您就可以自己记录异常。更多信息这里

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21323578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档