PHP錯誤是指在PHP腳本運(yùn)行期間發(fā)生的錯誤,這些錯誤可以分為致命錯誤(fatal errors)、解析錯誤(parse errors)、警告(warnings)等。其中Error 是所有PHP內(nèi)部錯誤類的基類。本教程將介紹Error的屬性及相關(guān)示例。
一、錯誤級別
錯誤日志通常被分為不同的錯誤級別,包括:
1、E_ERROR:嚴(yán)重錯誤,系統(tǒng)無法繼續(xù)執(zhí)行下去,需要立即停止執(zhí)行。
2、E_WARNING:警告級別錯誤,系統(tǒng)可以繼續(xù)執(zhí)行下去,但可能會影響程序的正確性。
3、E_NOTICE:通知級別錯誤,一些值在賦值之前被使用了,雖然不會影響程序的運(yùn)行,但可能會導(dǎo)致意外的結(jié)果。
4、E_STRICT:編碼標(biāo)準(zhǔn)的提示,用于標(biāo)記一些代碼編寫不規(guī)范的地方,以提高代碼的可讀性和可維護(hù)性。
5、E_DEPRECATED:在未來版本中將刪除的過時(shí)功能的提示,建議開發(fā)者盡快修改代碼以適應(yīng)新的標(biāo)準(zhǔn)。
6、E_PARSE:語法分析錯誤,代碼無法解析,通常是由于語法錯誤導(dǎo)致的。
二、類摘要
class Error implements Throwable { /* 屬性 */ protected string $message = ""; private string $string = ""; protected int $code; protected string $file = ""; protected int $line; private array $trace = []; private ?Throwable $previous = null; /* 方法 */ public __construct(string $message = "", int $code = 0, ?Throwable $previous = null) final public getMessage(): string final public getPrevious(): ?Throwable final public getCode(): int final public getFile(): string final public getLine(): int final public getTrace(): array final public getTraceAsString(): string public __toString(): string private __clone(): void }
三、屬性
1、$message:錯誤信息,默認(rèn)為空字符串。
2、$string:私有屬性,默認(rèn)為空字符串。
3、$code:錯誤代碼,默認(rèn)為0。
4、$file:錯誤發(fā)生的文件名,默認(rèn)為空字符串。
5、$line:錯誤發(fā)生的行號,默認(rèn)為0。
6、$trace:錯誤追蹤信息,默認(rèn)為空數(shù)組。
7、$previous:上一個(gè)異常對象,默認(rèn)為null。
四、自定義Error處理
1、Error::__construct — 初始化 error 對象:該方法用于初始化Error對象,可以接受3個(gè)參數(shù),分別為錯誤信息、錯誤代碼、上一個(gè)異常。
2、Error::getMessage — 獲取錯誤信息:該方法用于獲取Error對象中存儲的錯誤信息。
3、Error::getPrevious — 返回先前的 Throwable:該方法用于獲取從當(dāng)前Error對象中繼承而來的Throwable對象。
4、Error::getCode — 獲取錯誤代碼:該方法用于獲取Error對象中存儲的錯誤代碼。
5、Error::getFile — 獲取錯誤發(fā)生時(shí)的文件:該方法用于獲取Error對象中存儲的錯誤發(fā)生時(shí)所在的文件名。
6、Error::getLine — 獲取錯誤發(fā)生時(shí)的行號:該方法用于獲取Error對象中存儲的錯誤發(fā)生時(shí)所在的行號。
7、Error::getTrace — 獲取調(diào)用棧(stack trace):該方法用于獲取Error對象中存儲的調(diào)用棧信息,返回一個(gè)數(shù)組。
8、Error::getTraceAsString — 獲取字符串形式的調(diào)用棧(stack trace):該方法用于獲取Error對象中存儲的調(diào)用棧信息的字符串形式。
9、Error::__toString — error 的字符串表達(dá):該方法用于將Error對象轉(zhuǎn)換成字符串。
10、Error::__clone — 克隆 error:該方法用于克隆Error對象。