版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第九章 異常處理一、選擇題1、無論是否發(fā)生異常,都需要執(zhí)行( C )A、 try語句塊 B、catch語句塊 C、 finally語句塊 D、 return語句2、異常處理變量( C )。A、應(yīng)用public關(guān)鍵字 B、可以應(yīng)用protected關(guān)鍵字 C、可以應(yīng)用private關(guān)鍵字 D、只能在異常處理方法內(nèi)使用。3、通常的異常類是(A )A、Exception B、exception C、CommonException D、ExceptionShare4、異常產(chǎn)生的原因很多,常見的有(A )。A、程序設(shè)計本身的錯誤 B、程序運行環(huán)境改變 C、軟、硬件設(shè)置錯誤 D、以上都是5、( C )是除
2、0異常。A、RuntimeException B、ClassCastExceptionC、ArihmetticException D、ArrayIndexOutOfBoundException6、下列描述中,對使用異常處理的原因描述錯誤的有( D )A、將錯誤處理程序與正常程序流分開,增加程序的可讀性B、可以容易地指出異常在何處處理C、減輕程序員處理異常的任務(wù)D、增加語言的復(fù)雜機制7、讀下面代碼,哪個選項是正確的( C )import java.io.*;public class Test2public static void main(String args)throws IOExcepti
3、onif(args0=”hello”) throw new IOException();A、沒有錯誤,程序編譯正確B、編譯錯誤,不能夠在main方法中拋出異常C、編譯錯誤,IOException是一個系統(tǒng)異常,不能夠由application程序產(chǎn)生D、沒有輸出結(jié)果8、當變異并且運行下面程序時會出現(xiàn)什么結(jié)果?( A )public class ThrowsDemostatic void throwMethod() System.out.print("Inside throwMethod"); throw new IOException("demo");pu
4、blic static void main(String args)try throwMethod(); catch(IOException e) System.out.println("Cauht"+e); A、編譯錯誤 B、運行錯誤 C、編譯成功,但不會打印出任何結(jié)果 D、沒有輸出結(jié)果9、執(zhí)行下面程序的結(jié)果是什么?其中a=4,b=0 ( B )public static void divide(int a,int b) try int c = a / b; catch(Exception e) System.out.println("Exception&quo
5、t;); finally System.out.println("Finally"); A、打印Exception finally B、打印FinallyC、打印Exception D、沒有輸出結(jié)果10、假定一個方法會產(chǎn)生非RuntimeException異常,如果希望把異常交給調(diào)用該方法的方法處理,正確的聲明方式是什么? ( A )A、throw Exception B、throws ExceptionC、new Exception D、不需要指明什么11、閱讀下面的代碼段、trytryThis();return;catch(IOException x1) System.
6、out.println(“exception 1”);Return;catch(Exception x2)System.out.println(“exception 1”);Return;finally System.out.println(“finally”)如果tryThis()拋出一個IOException,那么屏幕的輸出是什么?( A )A、”exception 1”后面跟著”finally” B、” exception 2”后面跟著“finally”C、”exception 1” D、”exception 2”12、下列哪些內(nèi)容不是異常的含義?( B ) A、 程序的語法錯 B、 程
7、序編譯或運行中所發(fā)生的異常事件 C、 程序預(yù)先定義好的異常事件 D、 程序編譯錯誤13、 自定義的異常類可從下列哪個類繼承?( D )A、 Error類 B、 AWTError C、 VirtualMachineError D、 Exception及其子集14、 當方法遇到異常又不知如何處理時,下列哪種做法是正確的?( A )A、 捕獲異常 B、 拋出異常 C、 聲明異常 D、 嵌套異常15、 如要拋出異常,應(yīng)用下列哪種子句?( B ) A、 catch B、 throw C、 try D、 finally16、對于catch子句的排列,下列哪種是正確的?( B )A、父類在先,子類在后 B、
8、子類在先,父類在后C、有繼承關(guān)系的異常不能在同一個try程序段內(nèi) D、先有子類,其他如何排列都無關(guān)17、下列選項中屬于異常的關(guān)鍵字是( C )A、 public B、InputStream C 、Exception D、abstract18、下列選項中屬于Exception異常的是(D )A、ArithmeticException B、nullPointerExceptionC、classcastException D、以上都是 19、以下是異常的處理,哪個選項是正確的( D )A、book()throws exception B、book(int a)exceptionC、book()thr
9、ows D、book()throw exception20、所有屬于( B )子類的異常都是非檢查型異常A、RuntimeException B、Exception C、Error D、以上答案都不對21、Java編譯程序?qū)τ冢?A )需要加強捕獲或聲明要求A、異常 B、 錯誤 C、非檢查型錯誤 D、檢查型異常22、如果試圖捕獲多個錯誤,可在( A )語句塊的后面使用多個()語句塊A、 try catch B、 catch try C、finally try D、以上答案都不對23、將需要處理異常作為( B )語句塊的一個參數(shù)來進行聲明A、 try B、 catch C、 finally D、
10、 以上都不對24、try語句塊可以( C )A、 擁有惟一的一個catch語句塊 B、 多個finally語句塊C、 一個或多個catch語句塊 D、 以上答案都不對25、所有RuntimeException子類的異常都屬于( C )A、 致命錯誤 B 、 邏輯錯誤 C 、 檢查型錯誤 D、 非檢查型錯誤26、( D )是所有Exception和Error類的共同超類A、Throwable B、CheckedException C、 Catchable D、RuntimeException27、Error和Exception是Throwable的兩個直接子類,其中下列屬于Error的直接子類的
11、是( D )A、ThreadDeath B、 LinkageError C、VirtualMachineError D、以上都是28、在try代碼中聲明的變量只能在該塊的大括號( B )使用A、 結(jié)束之前 B、 結(jié)束之后 C、 不清楚 D、 不用執(zhí)行29、假定一個方法可能會產(chǎn)生非RuntimeException異常,如果希望把異常交給調(diào)用該方法的方法處理,正確的聲明方式是( D )A、throws Exception B、throw Exception C、new Exception D、不需要指明什么30、 try代碼塊中包含的是可能引起一個或多個異常代碼,能夠拋出異常的代碼必須位于( A
12、)代碼塊中。A、 catch B、 finally C 、 try D 、 B和C31、 Java一般不會檢查( A )是否被處理,而本身在程序中也不能捕獲該類型的異常,因為它一旦產(chǎn)生,該程序基本會處于需要終止的狀態(tài)A、Exception B、Errror C、catch D、ClassCastException32、 當應(yīng)用程序檢測到異常時,會調(diào)用( B )A、異常代碼 B、異常處理器 C、異常處理程序 D、以上答案都不是33、調(diào)用方法Integer.parseInt(“123.45”);將拋出( C )A、 NumberFormatException B、 ParsingException
13、C、 ArithmeticException D、 以上答案都不對34、try語句塊中未產(chǎn)生異常,應(yīng)用程序會忽略相應(yīng)( C )A 、 finally語句塊 B、 return語句 C、 catch語句塊 D、 A和C35、Java編譯程序?qū)τ冢?D )需要捕獲和聲明要求A、 錯誤 B、 異常 C、 非檢查異常 D、 檢查異常36、如果方法未能改正所出現(xiàn)的問題,則方法將( A )異常A、 拋出 B、 捕獲 C、 返回 D、 以上答案都不對37、如果try語句中未產(chǎn)生異常,應(yīng)用程序會忽略相應(yīng)的( C )A 、finally語句塊 B、 return語句 C、catch語句塊 D、 以上答案都不對3
14、8、執(zhí)行語句過程中對異常的處理被稱為異常( B )A 、檢測 B 、 處理 C 、解決 D、 調(diào)試39、在( C )之后總有至少一個catch語句塊或一個可以選用的finally語句塊A、 if語句 B、 throws語句塊 C、 try語句塊 D、 以上答案都不對40、當應(yīng)用程序檢測到異常時,會調(diào)用( A )A、 異常代碼 B 、異常處理器 C、異常處理程序 D、以上答案都不對41、每個catch塊都需要指定一個( C ),表示異常處理程序所能處理的異常類型A、參數(shù) B、try語句塊 C、錯誤處理程序 D、拋出程序42、如果try語句塊中沒有拋出異常,則( A ) A、 跳過所有catch語
15、句塊 B 、執(zhí)行所有catch語句塊C、 產(chǎn)生一個錯誤 D 、拋出默認的異常43、 ( C )類及其子類所表示的異常通常不需要捕獲A、 NumberFormatException B、 ExceptionC、 Error D、 RuntimeException44、 所有RuntimeException子類的異常都屬于( ) A、致命錯誤 B、邏輯錯誤 C 、檢查型異常 D、非檢查型異常45、在oneMethod()方法運行正常的情況下將顯示什么?( D )public void test() try oneMethod(); System.out.println("conditio
16、n 1"); catch (ArrayIndexOutOfBoundsException e) System.out.println("condition 2"); catch(Exception e) System.out.println("condition 3"); finally System.out.println("finally"); Which will display if oneMethod run normally? A、condition 1 B、 condition 2 C、 condition 3
17、 D、condition 1 finally 46、如果try語句塊中沒有跑出異常,則( A )A、 跳過所有的catch語句塊 B、 執(zhí)行所有的catch語句塊C、 產(chǎn)生一個錯誤 D、 跑出默認的異常47、每個catch塊都需要制定一個( C ),表示異常處理程序所能處理的異常類型A、 try語句塊 B、 參數(shù) C 、 錯誤處理程序 D、 拋出程序48、給出下面代碼、public class test static int a = new a10; public static void main(String args) System.out.println(arr10); 那個選項是正確的
18、? ( B )A、 編譯時將產(chǎn)生錯誤; B、 編譯時正確,運行時將產(chǎn)生錯誤; C、 輸出零; D、 輸出空。49、下列那些內(nèi)容是異常的含義( D )A、 程序的語法錯誤 B、 程序的編譯錯誤C、 程序執(zhí)行過程的錯誤 D、 程序編譯或運行所發(fā)生的異常事件二、判斷題1、不能在finally塊中執(zhí)行return,continue等語句,否則會把異?!俺缘簟保?× )2、Try語句后面可以跟多個catch語句( )3、finally語句必須執(zhí)行。( )4、throws 和throw 功能一樣。( × )5、try語句后面必須跟catch語句( )6、try語句后面只能跟一個catc
19、h語句(× )7、當代碼出現(xiàn)異常時,才執(zhí)行try/catch/finally語句的finally部分代碼( × )8、Try/catch 語句不可以進行嵌套操作。(× )9、異常就是程序運行過程中遇到的嚴重錯誤,使程序運行中止,或者即使程序能夠繼續(xù)運行,但得出錯誤的結(jié)果甚至導(dǎo)致嚴重的后果。 ( )10、事實上,異常以及異常處理是非常簡單,所以程序員選擇用異常而不選擇自己處理錯誤。 ( × )11、異常的處理分為異常拋出和異常捕獲。異常拋出就是系統(tǒng)自動檢測到特定位置出現(xiàn)的異常,從而可以進行實現(xiàn)編寫好的異常處理程序。異常捕獲是指用戶自己拋出特定的異常來出發(fā)異
20、常處理程序,以檻車異常處理程序是否能正常工作。(× )12、finally子句不一定會執(zhí)行的,要根據(jù)具體的情況。( × )13、因為java類庫提供了十分豐富的異常類型,能夠滿足絕大多數(shù)編程需要,所以,在開發(fā)較大的程序時,不需要建立自己的異常類。( × )14、 程序中拋出異常時(throw ),只能拋出自己定義的異常對象。(× )15、. 一個異常處理中 finally語句塊只能有一個或者可以沒有。( )16 程序產(chǎn)生的原因有程序設(shè)計本身的錯誤、程序運行環(huán)境改變、軟硬件設(shè)置的錯誤 ( ) 17 finally語句塊只有在try語句塊中檢測到異常時才會執(zhí)
21、行里面的語句 ( × )18 異常就是程序運行過程中遇到的嚴重錯誤,使程序運行終止,或者即使程序能夠繼續(xù)運行,但得出錯誤的結(jié)果甚至導(dǎo)致嚴重的后果 ( )19 異常拋出就是系統(tǒng)自動檢測到特定位置出現(xiàn)的異常,從而可以執(zhí)行事先編寫好的異常處理程序 ( )20 為了實現(xiàn)異常的聲明,在產(chǎn)生異常的方法參數(shù)列表之后、方法體之前提供一個含檢查型異常的throw語句 (× )21 異常處理機制允許開發(fā)人員將錯誤處理代碼從應(yīng)用程序的邏輯代碼中分離出來,從而改善應(yīng)用程序的清晰度和可修 ( )22 在Java處理機制中,try-catch-finally語句來捕獲異常而用throws來拋出異常 (
22、 )23 Java系統(tǒng)在產(chǎn)生異常后,從上到下依次對每個catch語句進行檢測,直到找到和拋出的異常對象想匹配的異常類型為止( )24 利用try語句將可能跑出NumberFormatException異常的語句進行封裝并使用catch語句塊實現(xiàn)對NumberFormatException異常的處理 ( )25 非運行時異常就是編譯器編譯的時候發(fā)現(xiàn)不了,只有在運行的時候才報錯的異常;而運行時異常則是指編譯的時候就能發(fā)現(xiàn)的異常 ( × )26 Exception由程序處理的異常,分為運行時異常和非運行時異常 (× )27 RuntimeException異常需要區(qū)別對待并且編譯
23、器允許忽略它們的原因是,它們通常由代碼中的嚴重錯誤產(chǎn)生 ( )28 CalssCastException指的是試圖把一個對象進行非法的類型強制轉(zhuǎn)換,即這個對象不是指定的類,也不是指定的 子類或者超類 ( × ) 29 catch代碼塊包含的代碼不是用來處理相關(guān)的try代碼塊中可能拋出的某種具體類型的代碼 ( × )30 try代碼塊只能拋出一個異常不能拋出多個異常,try后面可以跟多個cathc ( × )31 如果需要關(guān)閉一個文件,或者需要釋放一項重要資源,可以把相關(guān)處理的代碼放入一個finally代碼中以確保完成工作 ( )32、IOexception屬于Ex
24、ception包( )33、如果try語句塊中未產(chǎn)生異常,應(yīng)用程序會忽略相應(yīng)catch語句塊。( )34、程序中拋出異常時(throw ),只能拋出自己定義的異常對象。 ( × )35、一個異常處理中 finally語句塊只能有一個或者可以沒有。( )三、程序閱讀題1、閱讀下面代碼,寫出運行結(jié)果。public class TestExceptionpublic TestException()boolean testEx() throws Exceptionboolean ret = true;tryret = testEx1();catch (Exception e)System.o
25、ut.println("testEx, catch exception");ret = false;throw e;finallySystem.out.println("testEx, finally; return value=" + ret);return ret;boolean testEx1() throws Exceptionboolean ret = true;tryret = testEx2();if (!ret)return false;System.out.println("testEx1, at the end of try
26、");return ret;catch (Exception e)System.out.println("testEx1, catch exception");ret = false;throw e;finallySystem.out.println("testEx1, finally; return value=" + ret);return ret;boolean testEx2() throws Exceptionboolean ret = true;tryint b = 12;int c;for (int i = 2; i >=
27、-2; i-)c = b / i;System.out.println("i=" + i);return true;catch (Exception e)System.out.println("testEx2, catch exception");ret = false;throw e;finallySystem.out.println("testEx2, finally; return value=" + ret);return ret;public static void main(String args)TestExceptio
28、n testException1 = new TestException();trytestException1.testEx();catch (Exception e)e.printStackTrace();答案 :2、閱讀下面代碼,寫出運行結(jié)果class MultiNest static void procedure() try int a = 0;int b = 42/a; catch(java.lang.ArithmeticException e) System.out.println("in procedure, catch ArithmeticException: &qu
29、ot; + e);public static void main(String args) try procedure(); catch(java.lang. Exception e) System.out.println("in main, catch Exception: " + e);答案:3、寫出下面代碼所捕獲的異常類型 Public class Exception1Public static void main(String args) Try int a=1,2,3,4,5, sum=0;For(int i=0;i<=5;i+)sum=sum+ai;Sys
30、tem.out.println(“sum=”+sum);Catch(ArrayIndexOutOfBoundsException e)System.out.println(“ArrayIndexOutOfBoundsExceptiondetected”);FinallySystem.out.println(“Programm Finished!”)答案:4、寫出下面代碼所捕獲的異常類型 Public class Exception2Public static void main(String args)Try int x,y;X=15;Y=0;System.out.println(x/y);S
31、ystem.out.println(“Computing successfully!”);Catch(ArithmeticException e)System.out.println(“ArithmeticException catched!”)System.out.println(“Exception message:”+e.toString();FinallySystem.out.println(“Finally block.”)答案:5、在上例中要求輸入文件名,它只聲明所輸入文件名是否存在異常并沒有去處理。請在劃線處上填上適當?shù)淖泳洌蛊淠懿东@異常并正確執(zhí)行。 import java.i
32、o.*; public classBException public static void main(String args)/獲得文件名 BuffereReader stdin=new BuffereReader(new InputSteramReader(System.in); System.out.printl(“Filename:”); String s=stdin.readLine; BuffereReader filein=null;/為處理組織文件流 try Filein= new BuffereReader(new FileReader(s); System.err.prin
33、tln(s+“、cannot be opened for reading”); System.exit(0); int numerator=Integer.paresInt(filein.readLine( ) );/提取值和計算商 int denominator=Integer.parseInt(filein.readLine( ) ); int quotient=numerator/denominator; System.out.pintln( ); System.out.println(numerator+“/”+denominator+“=”+quotient); return; 6、
34、下列是異常的處理,請完成程序public class numberpublic static void main(String args) int a=9;int b=0; tryint sum=a/b;System.out.println(sum);catch( e) System.out.println(e.toString(); 7、 下面是一個類型轉(zhuǎn)換的程序,請完成程 Public calss TryCatch Public static void main(String args) String t1=”03121”; Double t2=0; TryTi=Double.parseDouble(t2);System.out.println(“轉(zhuǎn)換成功”);catch( e) System.out.pri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年增資協(xié)議合同簽訂流程
- 2025年倉儲貨物出借協(xié)議
- 2025年圣誕節(jié)裝飾協(xié)議
- 2025年商業(yè)責任不足額保險條款設(shè)定
- 二零二五版木屑生物質(zhì)顆粒燃料研發(fā)與推廣合同4篇
- 二零二五年度木工行業(yè)技術(shù)標準制定合作協(xié)議3篇
- 二零二五年度汽車抵押貸款購車二手車過戶合同
- 二零二五年度科技創(chuàng)業(yè)項目股權(quán)眾籌委托投資合同
- 二零二五年度車輛綠色出行補貼購買合同
- 二零二五年度經(jīng)典實習(xí)合同(法律事務(wù)實習(xí))
- 機電安裝工程安全培訓(xùn)
- 洗浴部前臺收銀員崗位職責
- 2024年輔警考試公基常識300題(附解析)
- GB/T 43650-2024野生動物及其制品DNA物種鑒定技術(shù)規(guī)程
- 暴發(fā)性心肌炎查房
- 工程質(zhì)保金返還審批單
- 【可行性報告】2023年電動自行車項目可行性研究分析報告
- 五月天歌詞全集
- 商品退換貨申請表模板
- 實習(xí)單位鑒定表(模板)
- 數(shù)字媒體應(yīng)用技術(shù)專業(yè)調(diào)研方案
評論
0/150
提交評論