99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

D編程 異常處理

2021-09-01 11:01 更新

Exception異常是在程序執(zhí)行期間出現(xiàn)的問(wèn)題,異常提供了一種將控制權(quán)從程序的一部分轉(zhuǎn)移到另一部分的方法。 D異常處理基于三個(gè)關(guān)鍵字 try , catch 和 throw 。

  • throw     -  出現(xiàn)問(wèn)題時(shí),程序?qū)⒁l(fā)異常。這是通過(guò) throw 關(guān)鍵字完成的。
  • catch      -   catch 關(guān)鍵字用于捕獲異常。
  • try           -  try 塊標(biāo)識(shí)了為其激活了特定異常的代碼塊。

假設(shè)一個(gè)塊會(huì)引發(fā)異常,則方法使用 try 和 catch 關(guān)鍵字的組合來(lái)捕獲異常,在可能產(chǎn)生異常的代碼周圍放置了一個(gè)try/catch塊。使用try/catch的語(yǔ)法如下

try { 
   //protected code 
} 
catch( ExceptionName e1 ) { 
   //catch block 
} 
catch( ExceptionName e2 ) { 
   //catch block 
} 
catch( ExceptionName eN ) { 
   //catch block 
} 

您可以列出多個(gè) catch 語(yǔ)句以捕獲不同類型的異常,以防您的 try 塊在不同情況下引發(fā)多個(gè)異常。

拋出異常

可以使用 throw 語(yǔ)句在代碼塊內(nèi)的任何位置拋出異常, throw語(yǔ)句的操作數(shù)確定異常的類型,可以是任何表達(dá)式,表達(dá)式輸出的類型確定拋出的異常的類型。

以下示例在被零除條件發(fā)生時(shí)引發(fā)異常-

double division(int a, int b) { 
   if( b == 0 ) { 
      throw new Exception("Division by zero condition!"); 
   }
   
   return (a/b); 
}

捕獲異常

try 塊之后的 catch 塊捕獲任何異常,您可以指定要捕獲的異常類型,這取決于關(guān)鍵字catch后面括號(hào)中的異常聲明。

try { 
   //protected code 
} 

catch( ExceptionName e ) { 
   //code to handle ExceptionName exception 
}

上面的代碼捕獲了 ExceptionName 類型的異常,如果要指定catch塊應(yīng)處理在try塊中引發(fā)的任何類型的異常,則必須在括起異常聲明的括號(hào)之間放置省略號(hào)...,如下所示-

try { 
   //protected code 
} 

catch(...) { 
   //code to handle any exception 
}

下面的示例引發(fā)除以零的異常。它被捕獲在捕獲塊中。

import std.stdio; 
import std.string;
  
string division(int a, int b) { 
   string result="";  
   
   try {  
      if( b == 0 ) {
         throw new Exception("Cannot divide by zero!"); 
      } else { 
         result=format("%s",a/b); 
      } 
   } catch (Exception e) { 
      result=e.msg; 
   }
   
   return result; 
} 
 
void main () { 
   int x=50; 
   int y=0;  
   
   writeln(division(x, y));  
   
   y=10; 
   writeln(division(x, y)); 
}

編譯并執(zhí)行上述代碼后,它將讀取上一部分中創(chuàng)建的文件,并產(chǎn)生以下輸出-

Cannot divide by zero!
5


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)