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

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

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

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

//執(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('計(jì)劃任務(wù)執(zhí)行文件:'. $value['url'], 0);
}
回答
編輯回答
詆毀你

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

但是...為什么引入的文件可能會(huì)出現(xiàn)500代碼錯(cuò)誤的情況呢?代碼錯(cuò)誤不是究極bug嗎

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

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

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

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

致命錯(cuò)誤是沒(méi)辦法try住的,你嘗試使用register_shutdown_function函數(shù)注冊(cè)腳本終止時(shí)的函數(shù)?;蛘哂?code>set_error_handler函數(shù)來(lái)捕獲錯(cuò)誤。

2017年10月4日 15:25