php錯誤、異常處理機制(補充)

來源:互聯網
上載者:User

一、錯誤處理
異常處理: 意外,是在程式運行過程中發生的意料這外的事,使用異常改變指令碼正常流程
PHP5中的一個新的重要特性 複製代碼 代碼如下:if(){
}else{
}
try {
}catch(異常對象){
}

1. 如果try中代碼沒有問題,則將try中代碼執行完後就到catch後執行
2. 如果try中代碼有異常發生,則拋出一個異常對象(使用throw),拋出給了catch中的參數, 則在try中代碼就不會再繼續執行下去
直接跳轉到catch中去執行, catch中執行完成, 再繼續向下執行
注意: 提示發生了什麼異常,這不是主要我們要做事,需要在catch中解決這個異常, 如果解決不了,則出去給使用者
二、自己定義一個異常類
作用:就是寫一個或多個方法解決當發生這個異常時的處理方式
1. 自己定義異常類,必須是Exception(內建類)的子類,
2. Exception類中的只有構造方法和toString()可以重寫, 其它都final
三、處理多個異常
自己定義功能類時如果在方法中拋出異常 複製代碼 代碼如下:class OpenFileException extends Exception {
function __construct($message = null, $code = 0){
parent::__construct($message, $code);
echo "wwwwwwwwwwwwwww<br>";
}
function open(){
touch("tmp.txt");
$file=fopen("tmp.txt", "r");
return $file;
}
}
class DemoException extends Exception {
function pro(){
echo "處理demo發生的異常<br>";
}
}
class TestException extends Exception {
function pro(){
echo "這裡處理test發生的異常<br>";
}
}
class HelloException extends Exception {
}
class MyClass {
function openfile(){
$file=@fopen("tmp.txt", "r");
if(!$file)
throw new OpenFileException("檔案開啟失敗");
}
function demo($num=0){
if($num==1)
throw new DemoException("示範出異常");
}
function test($num=0){
if($num==1)
throw new TestException("測試出錯");
}
function fun($num=0){
if($num==1)
throw new HelloException("###########");
}
}
try{
echo "11111111111111<br>";
$my=new MyClass();
$my->openfile();
$my->demo(0);
$my->test(0);
$my->fun(1);
echo "22222222222222222<br>";
}catch(OpenFileException $e){ //$e =new Exception();
echo $e->getMessage()."<br>";
$file=$e->open();
}catch(DemoException $e){
echo $e->getMessage()."<br>";
$e->pro();
}catch(TestException $e){
echo $e->getMessage()."<br>";
$e->pro();
}catch(Exception $e){
echo $e->getMessage()."<br>";
}
var_dump($file);
echo "444444444444444444444<br>";

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.