問題:
當乙個函式返回
,返回值
可能表明
發生了乙個錯誤。|1
2
3
// declare an array of 10 integers
int
*pandata =
new
int
[10];
pandata[5] = 3;
你能確定的假設可能違反了?
答案是,運營商新的(實際上是呼叫乙個函式分配做)如果使用者記憶體失敗。
如果發生這種情況,pandata將被設定為零,當我們使用下標操作符對pandata,程式會崩潰。
這裡的錯誤檢查
新版本:
1
2
3
4
5
6
// delcare an array of 10 integers
int
*pandata =
new
int
[10];
// if something went wrong
if
(!pandata)
exit
(2);
// exit the program with error code 2
pandata[5] = 3;
問題:當程式接收輸入(無論是從使用者,或檔案),輸入不正確的格式。
這裡的示例程式,
你看到的:1
2
3
4
5
6
7
char
strhello =
"hello, world!"
;
std::cout <<
"enter an index: "
;
int
nindex;
std::cin >> nindex;
std::cout <<
"letter #"
<< nindex <<
" is "
<< strhello[nindex] << std::endl;
這裡是檢查使用者
輸入是否
有效版本:1
2
3
4
5
6
7
8
9
10
char
strhello =
"hello, world!"
;
int
nindex;
do
while
(nindex < 0 || nindex >=
strlen
(strhello));
std::cout <<
"letter #"
<< nindex <<
" is "
<< strhello[nindex] << std::endl;
假設錯誤處理
現在你知道假設錯誤通常發生,讓我們完成了在不同的方式處理他們當他們出現。沒有最好的方式來處理乙個錯誤-這真的取決於問題的性質。
這裡有一些典型的反應:
1)悄悄地跳過**依賴於假設是有效的:
MySql錯誤處理 錯誤處理的例子
有幾種錯誤處理的宣告形式 如果任何錯誤 不是 not found 設定 l error 為 1 後繼續執行 declare continue handler for sqlexception set l error 1 如果發生任何錯誤 不是 not found 執行 rollback和產生一條錯誤...
MySql錯誤處理(三) 錯誤處理的例子
mysql錯誤處理 三 錯誤處理的例子 有幾種錯誤處理的宣告形式 如果任何錯誤 不是 not found 設定 l error 為 1 後繼續執行 declare continue handler for sqlexception set l error 1 如果發生任何錯誤 不是 not foun...
PHP 錯誤處理
在 php 中,預設的錯誤處理很簡單。一條訊息會被傳送到瀏覽器,這條訊息帶有檔名 行號以及一條描述錯誤的訊息。在建立指令碼和 web 應用程式時,錯誤處理是乙個重要的部分。如果您的 缺少錯誤檢測編碼,那麼程式看上去很不專業,也為安全風險敞開了大門。本教程介紹了 php 中一些最為重要的錯誤檢測方法。...