當前位置:編程學習大全網 - 源碼下載 - java的異常處理

java的異常處理

有壹類特殊的異常叫“RuntimeException”,就是“運行時異常”,包括像常見的“NullPointerException”(空指針異常)等,這些異常通通繼承於“RuntimeException”類,它們通常是壹些無法預先知道的異常,只有在程序運行起來後才能知道到底會不會出現異常。

這種“RuntimeException”是用不著catch住,也不需要throws顯式拋出的(當然也允許catch或throws,如果程序確實有需要的話),Java虛擬機會自動把它們向上壹層拋出,如果壹直沒有被catch到,最後就由Java虛擬機catch住,然後在控制臺顯示出我們平常見到的異常信息,接著程序將被中止。

對於其它不是“RuntimeException”的異常(“非運行時異常”),方法中如果有可能出現,就必須catch住或者用throws顯示拋出,否則Java源代碼是無法通過編譯的。

========

壹般在下面這種情況時使用throws:

某個方法中調用了壹些會拋出異常方法,而這個方法從業務或邏輯上來說又不太應該處理這種異常,所以由它來catch住異常不好,這時就可以在方法上加上throws把異常交給上壹層調用本方法的代碼去處理。

總的來說,throws的含義就表示某個方法按照功能,有可能會出現某種異常。

例如:

情況壹:有壹個方法,功能是接收壹個字符串,把按指定格式轉換為日期,如果格式不符合,就返回null。

情況二:有壹個方法,功能是接收壹個字符串,把按指定格式轉換為日期,如果格式不符合,就拋出格式不符的異常。

字符串轉換日期壹般可以用DateFormat抽象類的parse方法(實現類通常是SimpleDateFormat),這個方法會拋出ParseException異常。

那麽,

對於情況壹,就要用catch抓住異常:

public Date strToDate(String dateStr) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date date = null;

try {

date = sdf.parse(dateStr);

} catch (ParseException e) {

e.printStackTrace();

}

return date;

}

而對於情況二,就要在方法上加throws來拋出異常:

public Date strToDate(String dateStr) throws ParseException {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

return sdf.parse(dateStr);

}

這兩種情況的區別,就在於方法設計的功能實現不同,情況壹要求這個方法能夠處理字符串格式不對的例外;而情況二只要求這個方法轉換格式,對於字符串格式不對的例外,只需要把這個“例外”告訴上層調用它的方法就行了。

比較形像的描述就是:

方法壹:妳給我壹個字符串,我看看它格式對不對,如果不對,就返回給妳壹個null;如果格式對了,就返回給妳正確日期。

方法二:妳給我壹個字符串,我就返回正確日期;如果格式有問題,我就喊壹聲“格式有問題!”。

這裏的throws,就相當於實現了“喊壹聲”的功能。

  • 上一篇:這是這裏的源代碼。
  • 下一篇:如何搭建dns服務器 bind
  • copyright 2024編程學習大全網