trigger error使用方法

2021-06-19 22:03:34 字數 2576 閱讀 6322

trigger_error

(php 4 >= 4.0.1, php 5)

trigger_error -- 產生使用者級別的 錯誤/警告/注意 資訊

說明bool trigger_error ( string error_msg [, int error_type] )

在指令碼中使用者輸入資料的位置,當使用者的輸入無效時觸發錯誤的很有用的。

使用trigger_error()函式在處理錯誤上會更具優勢,更易於處理錯誤。

trigger_error()接受乙個錯誤資訊和乙個常量作為引數。常量為:

e_user_error - 致命的使用者生成的 run-time 錯誤。錯誤無法恢復。指令碼執行被中斷。

e_user_warning - 非致命的使用者生成的 run-time 警告。指令碼執行不被中斷。

e_user_notice - 預設。使用者生成的 run-time 通知。指令碼發現了可能的錯誤,也有可能在指令碼執行正常時發生。

返回值:如查錯誤型別不對,則返回false,否則返回 true

範例$test=2;

if ($test>1)

可以設計乙個錯誤處理器,然後再定義乙個處理器選擇函式set_error_handler()來使用這個錯誤處理器。

我們或許可以通過trigger_error()生成乙個使用者警告來代替,使程式更具有靈活性。

index2.php

view plaincopy to clipboardprint?

// php 4

require_once('cmd_php4/command.php');

class commandmanager /.php";

if (!file_exists($path))

require_once $path;

if (!class_exists($cmd))

$ret = new $cmd();

if (!is_a($ret, 'command'))

return $ret;}}

// php 4

require_once('cmd_php4/command.php');

class commandmanager /.php";

if (!file_exists($path))

require_once $path;

if (!class_exists($cmd))

$ret = new $cmd();

if (!is_a($ret, 'command'))

return $ret;}}

如果你使用trigger_error()函式來替代die(),你的**在處理錯誤上會更具優勢,對於客戶程式設計師來說更易於處理錯誤。trigger_error()接受乙個錯誤資訊和乙個常量作為引數。常量為:

常量 含義

e_user_error a fatal error

e_user_warning a non-fatal error

e_user_notice a report that may not represent an error

你可以設計乙個錯誤處理器,然後再定義乙個處理器選擇函式set_error_handler()來使用這個錯誤處理器。

index2.php 後半段

view plaincopy to clipboardprint?

// php 4

function cmderrorhandler($errnum, $errmsg, $file, $lineno)

} $handler = set_error_handler('cmderrorhandler');

$mgr = new commandmanager();

$cmd = $mgr->getcommandobject('realcommand');

$cmd->execute();

// php 4

function cmderrorhandler($errnum, $errmsg, $file, $lineno)

}$handler = set_error_handler('cmderrorhandler');

$mgr = new commandmanager();

$cmd = $mgr->getcommandobject('realcommand');

$cmd->execute();

set_error_handler()接受乙個函式名作為引數。如果觸發了乙個錯誤,引數中的這個函式會被呼叫來處理錯誤。函式需要傳入四個引數:錯誤標誌,錯誤資訊,出錯檔案,出錯處的行數。你也可以將一組陣列傳遞給set_error_handler()。陣列中的第乙個元素必須是錯誤處理器將呼叫的物件,第二個元素是錯誤處理函式的名稱。可以看出,我們的錯誤處理器相當簡單簡陋,還可以改進。然而儘管你可以在錯誤處理器新增某些功能,如記錄出錯資訊,輸出debug資料等,這仍然是乙個過於粗糙的錯誤處理途徑。你的選擇僅限於已經考慮到的出錯情況。例如捕捉乙個e_user_error錯誤

如果你願意的話可以不中止指令碼的執行(不使用exit()和die()),但如果這樣做的話,可能會引起一些很微妙的bug,本來應該中止的程式卻繼續執行了。

dbms output put line使用方法

begin dbms output.put line a end 如果你是再sql plus中,只要再環境中打出 set serveroutput on 就可以了.還有一種方法 就是使用環境中的繫結變數也可以.再環境中定義 variable name varchar2 50 然後把過程新增乙個out...

sp addlinkedserver使用方法

exec sp droplinkedsrvlogin dbvip,null exec sp dropserver dbvip exec sp addlinkedserver server dbvip 被訪問的伺服器別名 srvproduct provider sqloledb datasrc ser...

SQL Server Profiler使用方法

一 sql server profiler使用方法 1 單擊開始 程式 microsoft sql server 2005 效能工具 sql server profiler,如下圖 2 彈出sql server profiler視窗,如下圖 3 在工作視窗內,滑鼠單擊 檔案 新建跟蹤 n 彈出資料庫...