【发布时间】:2016-04-27 11:23:34
【问题描述】:
我有一个在 laravel 5.0 上使用 try .. 捕获并使用系统命令的命令应用程序代码。当出现异常时,我的 catch 不起作用。
use Illuminate\Support\Facades\Log;
...
try {
system('.dump master | sqlite3 ' . $older . ' > ' . storage_path() . '/tmp/' . $tabla . '.sql' );
} catch ( \Exception $e) {
Log::alert('Problem import old table '. $tabla . $e->GetMessage());
}
我在 shell 上看到了我的错误,但没有写在我自己的 laravel 日志上。 (日志:警报)
【问题讨论】:
-
外部/系统调用本身不会产生异常。
-
'.dump master?您是否希望系统在$PATH中搜索.dump可执行文件,或者您的意思是./dump master即执行当前工作目录中的dump?无论如何,我建议构建绝对路径。例如:$cmd = __DIR__ . '/../somewhere/dump master'或$cmd = YOUR_ROOT_DIR . '/bin/dump master' -
我不问错误。我询问try..catch。我知道这是什么错误。
标签: php exception laravel-5 try-catch catch-block