鍍金池/ 問答/PHP/ 如何知道引入的文件是否執(zhí)行完成,出現錯誤怎么捕獲

如何知道引入的文件是否執(zhí)行完成,出現錯誤怎么捕獲

功能描述:項目需要一些計劃任務定時執(zhí)行,寫了一個文件,創(chuàng)建一個A文件,配置各個PHP任務文件的執(zhí)行時間次數等, 然后服務器添加一個計劃任務調用 A文件,

問題:如果其中的某一個文件存在致命錯誤,停止執(zhí)行,則造成后續(xù)的文件都停止運行, 能不能有個辦法判斷當前引入的任務文件是否執(zhí)行成功,比如:文件500錯誤等,當錯誤了我就寫入錯誤日志中, 嘗試了try 方法,沒有效果,大神們有什么思路指點下

//執(zhí)行該文件

if($is_load && is_file($value['url'])){
    echo '執(zhí)行文件:' . $value['url'];
    $time_arr[$value['k']] = 0;
    try {
        include_once './'.$value['url'];
    } catch (Exception $exc) {
        echo $exc->getTraceAsString();
    }
    
    log_tao('計劃任務執(zhí)行文件:'. $value['url'], 0);
}
回答
編輯回答
詆毀你

include是有返回值的,檢查一下返回值以確定是否引入成功。

但是...為什么引入的文件可能會出現500代碼錯誤的情況呢?代碼錯誤不是究極bug嗎

2018年3月25日 17:59
編輯回答
單眼皮

在引入的文件中對可能出現的地方添加判斷,執(zhí)行失敗則拋出異常,在其后進行捕獲記錄日志

throw new \Exception("Not Found!",404);

PHP自動捕獲所有異常
https://blog.csdn.net/hjtl1992/article/details/72328480
2018年1月20日 22:37
編輯回答
帥到炸

致命錯誤是沒辦法try住的,你嘗試使用register_shutdown_function函數注冊腳本終止時的函數?;蛘哂?code>set_error_handler函數來捕獲錯誤。

2017年10月4日 15:25