• /  15
  • 下載費用: 10.00積分  

Java面向對象程序設計 教學課件 ppt 作者 聶哲 電子教案 Java面向對象程序設計 教學課件 ppt 作者 聶哲 電子教案 第5章 包 異常與輸入輸出3.ppt

'Java面向對象程序設計 教學課件 ppt 作者 聶哲 電子教案 Java面向對象程序設計 教學課件 ppt 作者 聶哲 電子教案 第5章 包 異常與輸入輸出3.ppt'
包、異常與輸入輸出3Java異常(續)本單元教學內容Java異常的分類及異常類的層次結構自定義異常掌握throw關鍵字的用法異常分類Error異常Error異常:運行時間出現的系統內部的錯誤以及資源耗盡等情況。如:虛擬機內部發生錯誤、電源斷電引起的異常中止等。特點:這類異常性質嚴重,本身難以控制,且恢復可能性極小,意義不大。 Java不要求對這類異常進行必要的控制,編譯期也不對這類異常進行檢測。RuntimeException異常RuntimeException及其子類描述的異常,一般是由于編程錯誤引起的異常。如:錯誤的造型、數組越界存取、空指針訪問等。特點:完全可以通過改進程序加以克服,且數目很大。Java對這種異常的處理:編譯時,不對這類異常進行檢測;運行時,會自動在異常發生處生成相應的異常的對象,并由系統默認的異常處理器處理(通常輸出錯誤信息及錯誤地點)。應用程序可以對其進行捕獲處理(但不提倡)。運行環境引發的異常運行環境引發的異常。如:網絡不通,文件找不到等。特點:只要運行環境正常,程序是可以正常運行的。 Java要求對這類異常進行必要的控制。試一試class MyMath{ public int devide(int x,int y) throws ArithmeticException{ int result=x/y; return result; } }class MyMathTest{ public static void main(String[] args){ MyMath mobj; mobj=new MyMath(); int result; result=mobj.devide(3,0); System.out.println("the result is " + result); } }調用者沒有對拋出的異常進行處理,編譯能通過嗎?將拋出的異常由Exception改為ArithmeticException檢查和非檢查型異常非檢查型異常:編譯期間編譯器不對其進行檢查的異常,包括Error類和RuntimeException類及其子類。檢查型異常:除非檢查型異常以外的其它異常。編譯時,編譯器對方法進行分析,如方法中有產生這種異常的可能,那么方法中要么有異常的處理模塊,要么必須在方法頭部拋出異常,否則,不能通過編譯。那么,Exception是檢查型還是非檢查型異常?ArithmeticException呢?自定義異常自定義異常也是一個類,如果我們要創建檢查型的 異常,我們可以繼承Exception類;如果我們要創建非檢查型的異常,我們可以繼承RuntimeException 類如何創建自定義異常打開MyMath.java文件,假設我們在devide方法中不允許有負的除數,當接收到一個負的除數時,程序返回一個自定義的異常,通知調用者。首先創建一個異常類DevideByMinusExceptionclass DevideByMinusException extends Exception{ //定義子類構造器方法 public DevideByMinusException(String msg){ super(msg); }} 拋出自定義異常 class MyMath{ public int devide(int x,int y) throws ArithmeticException,DevideByMinusException{ if(y<0) throw new DevideByMinusException("除數為負數"); int result=x/y; return result; } }Java通過throw關鍵字拋出異常對象。注意throws和throw的區別聲明devide方法將拋出兩種類型的異常throw關鍵字 用throw語句可以創建并拋出明確的異常語法形式:Throw new xxException();如: try { if(flag<0) { throw new NullPointerException(); } }……調用者需做的修改class MyMathTest{ public static void main(String[] args){ try{ MyMath mobj; mobj=new MyMath(); int result; result=mobj.devide(3,0); // result=mobj.devide(3,-1); System.out.println("the result is " + result); }catch(ArithmeticException e){ System.out.println("程序發生ArithmeticException"); } catch(DevideByMinusException e){ System.out.println("程序發生DevideByMinusException"); } catch(Exception e){ System.out.println("程序發生其他類型異常"); } } }調用devide(3,-1)方法,將跳轉至該代碼塊運行調用devide(3,0)方法,將跳轉至該代碼塊運行發生其他異常,將跳轉至該代碼塊運行多catch結構上面的程序,我們使用一個try后面跟著多個catch來捕捉異常,每一個catch可以處理一個不同的異常。如果將catch(Exception e)代碼塊放到前面,行嗎?為什么?Exception類是所有異常類的父類,從語法上講,是能夠處理所有異常的。所以他后面的catch代碼塊永遠都得不到執行使用多catch結構捕獲多種異常時,catch子句應該按先子類異常再父類異常的順序排列作業作業:習題9,10
關 鍵 詞:
作者 電子 ppt 教案 教學 程序設計 面向對象 java 異常 輸入
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:Java面向對象程序設計 教學課件 ppt 作者 聶哲 電子教案 Java面向對象程序設計 教學課件 ppt 作者 聶哲 電子教案 第5章 包 異常與輸入輸出3.ppt
鏈接地址: http://www.476824.live/p-51617568.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 亿赢配资 安徽省11选五基本走势图 幸运赛车计划软件下载 青海西宁体彩十一选五 股票指数期货交易 河南快3基本走势一定牛i孑 上海时时乐开奖结果快 新浪财经上证指数实时走势 体彩海南飞鱼开奖结果 北京十一选五遗漏