首頁 後端開發 php教程 一个php 错误处理程序

一个php 错误处理程序

Jun 13, 2016 pm 12:00 PM
exception file return

一个php 异常处理程序

一个php的异常处理程序,功能很简单当发生重大错误时,写日志并友好提示用户.
代码:

<?php//exceptionHandle.php xiecongwen 20140620//define('DEBUG',true);/*** Display all errors when APPLICATION_ENV is development.*/if (defined('DEBUG')) {error_reporting(E_ALL);ini_set("display_errors", 1);}if(!defined('DEBUG')){/*** 当发生重大错误时 写日志 并友好提示用户* (PS:只所以将代码写在这里,是因为在其他地方注册时,出现问题无法调用配置函数.待完善...)*/function shutdownHandler(){/*** 写日志 此处直接写在根目录下shutdownlog.txt*/$lasterror = error_get_last();if($lasterror){$error = strval(date("Y-m-d h:i:s")).'=>'."[SHUTDOWN] lvl:" . $lasterror['type'] . " | msg:" . $lasterror['message'] . " | file:" . $lasterror['file'] . " | ln:" . $lasterror['line']."\n";file_put_contents('./log/'.date("Ymd").'shutdownlog.txt',$error,FILE_APPEND);//友好提示用户ob_end_clean();die('对不起,我出错了!');}}register_shutdown_function('shutdownHandler');}if(!defined('DEBUG')){ function errorHandler($errno, $errstr = '', $errfile = '', $errline = 0){//写日志$exception = new \ErrorException($errstr, 0, $errno, $errfile, $errline);$msg = strval(date("Y-m-d h:i:s")).'=>'.'Type:'.getErrTypeName($errno).' '.getMsg($exception);file_put_contents('./log/'.date("Ymd").'error.txt',$msg,FILE_APPEND);switch ($errno){case E_NOTICE:return ;case E_DEPRECATED:return;}throw $exception;}function getErrTypeName($errno){switch ($errno){case E_NOTICE:return 'E_NOTICE' ;case E_DEPRECATED:return 'E_DEPRECATED';default:return $errno;}}function exceptionHandler($ex){$msg = strval(date("Y-m-d h:i:s")).'=>'.getMsg($ex);file_put_contents('./log/'.date("Ymd").'exception.txt',$msg,FILE_APPEND);} www.jbxue.comfunction getMsg($exception){//获取最准确的异常 while($exception->getPrevious())$exception = $exception->getPrevious();$msg = ' Message: '.$exception->getMessage();$msg .= ' File: '.$exception->getFile().':'.$exception->getLine()."\n";return $msg;}set_error_handler('errorHandler',E_ALL);set_exception_handler('exceptionHandler');}?>
登入後複製

?

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1662
14
CakePHP 教程
1419
52
Laravel 教程
1311
25
PHP教程
1262
29
C# 教程
1235
24
php blob怎麼轉file php blob怎麼轉file Mar 16, 2023 am 10:47 AM

php blob轉file的方法:1.建立一個php範例檔;2、透過「function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })} 」方法實作Blob轉File即可。

使用java的File.length()函數取得檔案的大小 使用java的File.length()函數取得檔案的大小 Jul 24, 2023 am 08:36 AM

使用Java的File.length()函數取得檔案的大小檔案大小是在處理檔案作業時很常見的一個需求,Java提供了一個很方便的方法來取得檔案的大小,即使用File類別的length()方法。本文將介紹如何使用此方法來取得檔案的大小,並給出對應的程式碼範例。首先,我們需要建立一個File物件來表示我們想要取得大小的檔案。以下是建立File物件的方法:Filef

鴻蒙原生應用隨機詩詞 鴻蒙原生應用隨機詩詞 Feb 19, 2024 pm 01:36 PM

想了解更多關於開源的內容,請造訪:51CTO鴻蒙開發者社群https://ost.51cto.com運行環境DAYU200:4.0.10.16SDK:4.0.10.15IDE:4.0.600一、建立應用程式點擊File- >newFile->CreateProgect。選擇模版:【OpenHarmony】EmptyAbility:填寫項目名,shici,應用包名com.nut.shici,應用儲存位置XXX(不要有中文,特殊字符,空格)。 CompileSDK10,Model:Stage。 Device

C語言return的用法詳解 C語言return的用法詳解 Oct 07, 2023 am 10:58 AM

C語言return的用法有:1、對於傳回值類型為void的函數,可以使用return語句來提前結束函數的執行;2、對於傳回值型別不為void的函數,return語句的作用是將函數的執行結果傳回給呼叫者;3、提前結束函數的執行,在函數內部,我們可以使用return語句來提前結束函數的執行,即使函數並沒有回傳值。

使用java的File.renameTo()函數重命名文件 使用java的File.renameTo()函數重命名文件 Jul 25, 2023 pm 03:45 PM

使用Java的File.renameTo()函數重命名檔案在Java程式設計中,我們經常需要對檔案進行重命名的操作。 Java提供了File類別來處理檔案操作,其中的renameTo()函數可以方便地重新命名檔案。本文將介紹如何使用Java的File.renameTo()函數來重新命名文件,並提供對應的程式碼範例。 File.renameTo()函數是File類別的一個方法,

使用java的File.getParent()函數取得檔案的父路徑 使用java的File.getParent()函數取得檔案的父路徑 Jul 24, 2023 pm 01:40 PM

使用java的File.getParent()函數取得檔案的父路徑在Java程式設計中,我們經常需要操作檔案和資料夾。有時候,我們需要取得一個檔案的父路徑,也就是該檔案所在資料夾的路徑。 Java的File類別提供了getParent()方法用來取得檔案或資料夾的父路徑。 File類別是Java對檔案和資料夾的抽象表示,它提供了一系列操作檔案和資料夾的方法。其中,get

Java中的ConcurrentModificationException異常的產生原因和解決方法 Java中的ConcurrentModificationException異常的產生原因和解決方法 Jun 25, 2023 am 10:33 AM

在Java中,當多個執行緒同時操作一個集合物件時,有可能會發生ConcurrentModificationException異常,該異常通常發生在遍歷集合時進行修改或刪除元素的操作,這會導致集合的狀態出現不一致,從而拋出異常。本文將深入探討此異常的產生原因和解決方法。一、異常產生原因通常情況下,ConcurrentModificationException異

Java中return和finally語句的執行順序是怎樣的? Java中return和finally語句的執行順序是怎樣的? Apr 25, 2023 pm 07:55 PM

原始碼:publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}#輸出上述程式碼的輸出可以簡單地得出結論:return在finally之前執行,我們來看下字節碼層面上發生了什麼事情。下面截取case1方法的部分字節碼,並且對照源碼,將每個指令的含義註釋在

See all articles