程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 異常與錯誤處理

PHP 異常與錯誤處理

編輯:關於PHP編程

異常處理:意外,是在程序運行過程中發生的意料之外的事,使用異常改變腳本正常流程。

try
{
}
catch(異常對象)
{
}
  1. 如果try中代碼沒問題,則執行完try中代碼後就到catch後執行
  2. 如果try中代碼有異常發生,則拋出一個異常對象,拋出給catch中的對象,則在try中代碼就不會再繼續執行下去,直接跳轉到catch中去執行,catch中執行完成,在繼續向下執行。

注意:提示發生了什麼異常,不是我們主要做的事情,需要在catch中解決這個異常,如果解決不了,則拋出給用戶。

<?php
class OpenFileException extends Exception{
    function open(){
        touch("tmp.txt");
        
        $file=fopen("tmp.txt","r");
        
        return $file;
    }
}
class DemoException extends Exception{
    function pro(){
        echo "Demo異常<br />";
    }
}
class MyClass{
    function openfile(){
        $file=@fopen("aaa.txt","r");
        if(!$file)
            throw new OpenFileException("文件打開失敗");
    }
    
    function demo($num=0){
        if($num==1)
            throw new DemoException("演示異常!");
    }
}
try{
    $my=new MyClass();
    $my->openfile();
    $my->demo("1");
}catch(OpenFileException $e){
    echo $e->getMessage()."<br />";
    $file=$e->open();
}catch(DemoException $e){
    echo $e->getMessage()."<br />";
    $e->pro();
}catch(Exception $e){  //接收拋出了但沒有處理的所有異常
    echo $e->getMessage();
}
?>

錯誤處理:1.語法錯誤 2.運行時的錯誤 3.邏輯錯誤

錯誤報告: 錯誤:E_ERROR 警告:E_WARNING 注意:E_NOTICE

建議: 開發階段:開發是輸出所有的錯誤報告,有利於調試程序。運行階段:不要讓程序輸出任何一種錯誤報告。

<?PHP
	error_reporting(E_ALL);    //1.指定錯誤報告,錯誤類型為全部
	
	//ini_set("error_reporting",E_ALL);    //臨時改變配置文件的值
	//ini_get("upload_max_filesize");    //獲取配置文件的值
	
	ini_set("display_errors","off");    //2.關閉配置文件中的顯示錯誤
	ini_set("log_errors","on");    //3.開啟錯誤日志功能
	ini_set("error_log","C:/error.log");    //4.指定錯誤文件(可寫)
	
	error_log("this is a error message!!!!");    //輸出錯誤信息
	
?>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved