2
對laravel來說很新,所以我不確定它是如何處理錯誤以及如何最好地捕捉它們的。使用Laravel從庫中捕捉異常5.2
我使用的是第三方遊戲服務器的連接庫,可以以拉等球員,目前的地圖等數據查詢遊戲服務器..
這個庫被稱爲凝汽器:https://github.com/koraktor/steam-condenser
我已經使用作曲家在我的項目中導入了這一切,似乎所有工作都很好,但是我在捕捉庫引發的異常時遇到了問題。
一個示例是您正在查詢的遊戲服務器處於脫機狀態。
這裏是我的代碼:
public function show($server_name)
{
try{
SteamSocket::setTimeout(3000);
$server = server::associatedServer($server_name);
$server_info = new SourceServer($server->server_ip);
$server_info->rconAuth($server->server_rcon);
$players = $server_info->getPlayers();
$total_players = count($players);
$more_info = $server_info->getServerInfo();
$maps = $server_info->rconExec('maps *');
preg_match_all("/(?<=fs\)).*?(?=\.bsp)/", $maps, $map_list);
}catch(SocketException $e){
dd("error");
}
return view('server', compact('server', 'server_info', 'total_players', 'players', 'more_info', 'map_list'));
}
如果服務器處於脫機狀態,這將引發SocketException,我試圖抓住,但是這似乎永遠不會發生。然後我得到跟蹤的錯誤頁面。
這會導致一些問題,因爲我希望簡單地告訴最終用戶該服務器處於脫機狀態,但是如果我無法捕獲此錯誤,則無法執行此操作。
我的try/catch有什麼問題嗎? laravel是否會以這種方式處理錯誤?這是第三方庫的問題嗎?
我認爲這已經修復了:)它一定是一個問題,沒有導入類,但我會假設它會拋出classNotFound錯誤。 我試圖捕捉任何異常事件,仍然有同樣的問題,雖然之前我沒有反斜槓在開始。所以已經解決了這個問題。 感謝您的幫助! –