假設錯誤處理

2021-06-22 20:16:14 字數 2149 閱讀 8143

問題:

當乙個函式返回

,返回值

可能表明

發生了乙個錯誤。|1

2

3

// declare an array of 10 integers

int*pandata =newint[10];

pandata[5] = 3;

你能確定的假設可能違反了?

答案是,運營商新的(實際上是呼叫乙個函式分配做)如果使用者記憶體失敗。

如果發生這種情況,pandata將被設定為零,當我們使用下標操作符對pandata,程式會崩潰。

這裡的錯誤檢查

新版本:

1

2

3

4

5

6

// delcare an array of 10 integers

int*pandata =newint[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

charstrhello ="hello, world!";

std::cout <<"enter an index: ";

intnindex;

std::cin >> nindex;

std::cout <<"letter #"<< nindex <<" is "<< strhello[nindex] << std::endl;

這裡是檢查使用者

輸入是否

有效版本:1

2

3

4

5

6

7

8

9

10

charstrhello ="hello, world!";

intnindex;

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 中一些最為重要的錯誤檢測方法。...