我正在一起使用Stripe和Laravel。如果Stripe检测到为卡充电时出错(例如使用一个引发无效安全代码错误的测试信用卡号),则API绑定应该抛出一个异常,而它们就是这样做的。问题是,在Laravel抛出错误500页之前,我在捕捉异常时遇到了问题(我试图使用错误消息执行重定向)。
我编写的代码可以在Pastebin:http://pastebin.com/ZaW2xbbt上找到
我期望的行为是让catch触发并执行重定向,但是相反,我会得到带有消息和“未处理异常”的堆栈跟踪。这让我很困惑,因为我在处理这个例外。
像$customer这样的变量是有效的,并且以前已经定义过。有什么好主意吗?
发布于 2013-07-07 01:31:35
对于任何未来的观众,这里有一篇关于laravel 4中的错误处理的文章。
Laravel 4允许您根据异常类型捕获异常。例如,您可以通过将以下内容添加到代码中来处理Symfony的HttpException及其子类:
// Catch HttpException, NotFoundHttpException, etc etc
App::error(function(HttpException $exception, $code, $fromConsole)
{
...
});Symfony HttpExceptions (在Laravel中使用)可以找到这里。
您还可以将其抛到ServiceProvider中:
<?php namespace My\Namespace;
use Illuminate\Support\ServiceProvider;
use Symfony\Component\HttpKernel\Exception\HttpException;
class MyServiceProvider extends ServiceProvider {
public function register()
{
$this->app->error(function(HttpException $exception, $code, $fromConsole)
{
...
});
}
}希望这能帮上忙!
发布于 2019-01-07 08:37:34
通常,Laravel记录的所有错误都记录在storage/logs文件夹中。
无论如何,500错误可能是语法/解析错误,在这种情况下,在发生错误时还不能加载Laravel框架,如果是的话,该异常不会由Laravel处理。
在本例中,您应该以某种方式访问apache/vargrant/whatif错误日志(取决于您的服务器功能和配置),在我个人的情况下,我已经将服务器配置为将该日志放在/storage/logs/error_log.txt文件中,以便我可以像其他Laravel服务器日志一样访问这些日志。
请注意,在Laravel 5中,您有app/Exceptions/Handler.php作为自定义异常处理/报告的入口点。
https://stackoverflow.com/questions/15696945
复制相似问题