奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

java語言

Java編程中throw和throws子句的使用方法

時(shí)間:2024-08-26 11:17:20 java語言 我要投稿
  • 相關(guān)推薦

Java編程中throw和throws子句的使用方法

  Java throw:異常的拋出

  程序可以用throw語句拋出明確的異常。Throw語句的通常形式如下:

  throw ThrowableInstance;

  這里,ThrowableInstance一定是Throwable類類型或Throwable子類類型的一個對象。簡單類型,例如int或char,以及非Throwable類,例如String或Object,不能用作異常。有兩種可以獲得Throwable對象的方法:在catch子句中使用參數(shù)或者用new操作符創(chuàng)建。

  程序執(zhí)行在throw語句之后立即停止;后面的任何語句不被執(zhí)行。最緊緊包圍的try塊用來檢查它是否含有一個與異常類型匹配的catch語句。如果發(fā)現(xiàn)了匹配的塊,控制轉(zhuǎn)向該語句;如果沒有發(fā)現(xiàn),次包圍的try塊來檢查,以此類推。如果沒有發(fā)現(xiàn)匹配的catch塊,默認(rèn)異常處理程序中斷程序的執(zhí)行并且打印堆棧軌跡。

  下面是一個創(chuàng)建并拋出異常的例子程序,與異常匹配的處理程序再把它拋出給外層的處理程序。

  // Demonstrate throw.class ThrowDemo { static void demoproc() { try { throw new NullPointerException("demo"); } catch(NullPointerException e) { System.out.println("Caught inside demoproc."); throw e; // rethrow the exception } } public static void main(String args[]) { try { demoproc(); } catch(NullPointerException e) { System.out.println("Recaught: " + e); } }}

  該程序有兩個機(jī)會處理相同的錯誤。首先,main()設(shè)立了一個異常關(guān)系然后調(diào)用demoproc( )。 demoproc( )方法然后設(shè)立了另一個異常處理關(guān)系并且立即拋出一個新的NullPointerException實(shí)例,NullPointerException在下一行被捕獲。異常于是被再次拋出。下面是輸出結(jié)果:

  Caught inside demoproc.Recaught: java.lang.NullPointerException: demo

  該程序還闡述了怎樣創(chuàng)建Java的標(biāo)準(zhǔn)異常對象,特別注意下面這一行:

  throw new NullPointerException("demo");

  這里,new用來構(gòu)造一個NullPointerException實(shí)例。所有的Java內(nèi)置的運(yùn)行時(shí)異常有兩個構(gòu)造函數(shù):一個沒有參數(shù),一個帶有一個字符串參數(shù)。當(dāng)用到第二種形式時(shí),參數(shù)指定描述異常的字符串。如果對象用作 print( )或println( )的參數(shù)時(shí),該字符串被顯示。這同樣可以通過調(diào)用getMessage( )來實(shí)現(xiàn),getMessage( )是由Throwable定義的。

  Java throws子句

  如果一個方法可以導(dǎo)致一個異常但不處理它,它必須指定這種行為以使方法的調(diào)用者可以保護(hù)它們自己而不發(fā)生異常。做到這點(diǎn)你可以在方法聲明中包含一個throws子句。一個 throws 子句列舉了一個方法可能拋出的所有異常類型。這對于除Error或RuntimeException及它們子類以外類型的所有異常是必要的。一個方法可以拋出的所有其他類型的異常必須在throws子句中聲明。如果不這樣做,將會導(dǎo)致編譯錯誤。

  下面是包含一個throws子句的方法聲明的通用形式:

  type method-name(parameter-list) throws exception-list{ // body of method}

  這里,exception-list是該方法可以拋出的以有逗號分割的異常列表。

  下面是一個不正確的例子。該例試圖拋出一個它不能捕獲的異常。因?yàn)槌绦驔]有指定一個throws子句來聲明這一事實(shí),程序?qū)⒉粫幾g。

  // This program contains an error and will not compile.class ThrowsDemo { static void throwOne() { System.out.println("Inside throwOne."); throw new IllegalAccessException("demo"); } public static void main(String args[]) { throwOne(); }}

  為編譯該程序,需要改變兩個地方。第一,需要聲明throwOne( )引發(fā)IllegalAccess Exception異常。第二,main( )必須定義一個try/catch 語句來捕獲該異常。正確的例子如下:

  // This is now correct.class ThrowsDemo { static void throwOne() throws IllegalAccessException { System.out.println("Inside throwOne."); throw new IllegalAccessException("demo"); } public static void main(String args[]) { try { throwOne(); } catch (IllegalAccessException e) { System.out.println("Caught " + e); } }}

  下面是例題的輸出結(jié)果:

  inside throwOnecaught java.lang.IllegalAccessException: demo

【Java編程中throw和throws子句的使用方法】相關(guān)文章:

Java編程中this關(guān)鍵字與super關(guān)鍵字的使用方法04-02

Java編程中異常處理的方法12-16

Java編程中獲取路徑的方法12-03

Java線程編程中的主線程詳細(xì)介紹04-02

java教程之Java編程基礎(chǔ)12-03

Java語言的編程特點(diǎn)03-18

Java編程學(xué)習(xí)示例04-03

Java中嵌入式MySQL的使用方法介紹04-03

Java編程語言應(yīng)用的行業(yè)03-18

主站蜘蛛池模板: 韩城市| 高雄市| 盐源县| 江油市| 巢湖市| 英德市| 赤水市| 余江县| 邮箱| 湛江市| 南昌县| 湾仔区| 黔南| 安龙县| 毕节市| 淅川县| 台南县| 邻水| 诏安县| 华宁县| 积石山| 阳新县| 秦皇岛市| 营口市| 黑水县| 阳春市| 清徐县| 宜阳县| 大渡口区| 梨树县| 镇宁| 扬州市| 济阳县| 虎林市| 崇信县| 清水河县| 青海省| 松溪县| 会理县| 无为县| 荃湾区|