java异常处理试题及答案.doc
异常处理练习题一、选择题1JAVA中用来抛出异常的关键字是CA、TRYB、CATCHC、THROWD、FINALLY2关于异常,下列说法正确的是AA、异常是一种对象B、一旦程序运行,异常将被创建C、为了保证程序运行速度,要尽量避免异常控制D、以上说法都丌对3(A)类是所有异常类的父类。A、THROWABLEB、ERRORC、EXCEPTIOND、AWTERROR4JAVA语言中,下列哪一子句是异常处理的出口CA、TRY{}子句B、CATCH{}子句C、FINALLY{}子句D、以上说法都丌对5下列程序的执行,说法错误的是CPUBLICCLASSMULTICATCH{PUBLICSTATICVOIDMAINSTRINGARGS{TRY{INTAARGSLENGTHINTB42/AINTC{1}C4299SYSTEMOUTPRINTLN“B”B}CATCHARITHMETICEXCEPTIONE{SYSTEMOUTPRINTLN“除0异常”E}CATCHARRAYINDEXOUTOFBOUNDSEXCEPTIONE{SYSTEMOUTPRINTLN“数组超越边界异常”E}}}A、程序将输出第15行的异常信息B、程序第10行出错C、程序将输出“B42”D、程序将输出第15和19行的异常信息6下列程序的执行,说法正确的是(D)CLASSEXMULTI{STATICVOIDPROCEDURE{TRY{INTC{1}C4299}CATCHARRAYINDEXOUTOFBOUNDSEXCEPTIONE{SYSTEMOUTPRINTLN“数组超越界限异常”E}}PUBLICSTATICVOIDMAINSTRINGARGS{TRY{PROCEDUREINTAARGSLENGTHINTB42/ASYSTEMOUTPRINTLN“B”B}CATCHARITHMETICEXCEPTIONE{SYSTEMOUTPRINTLN“除0异常”E}}}A、程序只输出第12行的异常信息B、程序只输出第26行的异常信息C、程序将不输出异常信息D、程序将输出第12行和第26行的异常信息7下面程序抛出了一个“异常”并捕捉它。请在横线处填入适当内容完成程序。CLASSTROWSDEMO{STATICVOIDPROCEDURETHROWSILLEGALACCESSEXCEPTON{SYSTEMOUTPRINTLN“INSIDEPROCEDURE”THROW__NEW_____ILLEGALACCESSEXCEPTION“DEMO”}PUBLICSTATICVOIDMAINSTRINGARGS{TRY{PROCEDURE}CATCHILLEGALACCESSEXCEPTONE___________{SYSTEMOUTPRINTLN“捕获”E}}8对于CATCH子句的排列,下列哪种是正确的BA、父类在先,子类在后B、子类在先,父类在后C、有继承关系的异常不能在同一个TRY程序段内D、先有子类,其他如何排列都无关9在异常处理中,如释放资源、关闭文件、关闭数据库等由C来完成。A、TRY子句B、CATCH子句C、FINALLY子句D、THROW子句10当方法遇到异常又不知如何处理时,下列哪种说法是正确的CA、捕获异常B、抛出异常C、声明异常D、嵌套异常11哪个关键字可以抛出异常(C)A、TRANSIENTB、FINALLYC、THROWD、STATIC12.一个异常将终止AA、整个程序B、叧终止抛出异常的方法C、产生异常的TRY块D、上面的说法都丌对二、填空题JAVA异常处理内部资料【机密】交流QQ2505862621、CATCH子句都带一个参数,该参数是某个异常的类及其变量名,CATCH用该参数去与__出现异常_____对象的类进行匹配。2、JAVA虚拟机能自动处理__运行异常_____异常。3、变量属性是描述变量的作用域,按作用域分类,变量有局部变量、类变量、方法参数和_______4、捕获异常要求在程序的方法中预先声明,在调用方法时用TRYCATCH_FINALLY_____语句捕获并处理。5、JAVA语言认为那些可预料和不可预料的出错称为____异常_____6、按异常处理不同可以分为运行异常、捕获异常、声明异常和_抛出异常_____几种。7、抛出异常的程序代码可以是_自定义的异常_____或者是JDK中的某个类,还可以是JVM8、抛出异常、生成异常对象都可以通过__THROWS_______语句实现。9、捕获异常的统一出口通过___FINALLY______语句实现。10、JAVA语言的类库中提供了一个___THROWABLE_______类,所有的异常都必须是它的实例或它子类的实例。11、THROWABLE类有两个子类RUNEXCEPTION___类和EXCEPTION类。12、对程序语言而言,一般有编译错误和__运行____错误两类。13、下面程序定义了一个字符串数组,并打印输出,捕获数组超越界限异常。请在横线处填入适当的内容完成程序。PUBLICCLASSHELLOWORLD{INTI0STRINGGREETINGS{“HELLOWORLD”,“NO,IMEANIT”,“HELLOWORLD”}WHILEI4{____TRY________{SYSTEMOUTPRINTLNGREETINGI}____CATCH__ARRAYINDEXOUTOFBOUNDSEXCEPTIONE{SYSTEMOUTPRINTLN“RESETTINGINDEXVALUE”I1}FINALLY{SYSTEMOUTPRINTLN“THISISALWAYSPRINTED”}I}}三、判断题1F程序中抛出异常时THROW,只能抛出自己定义的异常对象。2T一个异常处理中FINALLY语句块只能有一个或者可以没有。3T异常类对象代表当前出现的一个具体异常。4TJAVA语言中的所有异常类都是JAVALANGTHROWABLE的子类。5F如果异常发生时,没有捕获异常的代码,程序会正常执行。四、编程题1.参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。提示用错误数据测试,即可得到异常类名,运行时主方法参数输入ABC测试PUBLICCLASSSTRINGINDEXOUTOF{PUBLICSTATICVOIDMAINSTRINGARGS{SYSTEMOUTPRINTLN“字符串索引越界异常“STRINGSTRARGS0SYSTEMOUTPRINTLN“第四个字符为”STRCHARAT3INTAAINTEGERPARSEINTARGS0SYSTEMOUTPRINTLN“平方为”AAAA}}2.从命令行得到5个整数,放入一整型数组,然后打印输出,要求如果输入数据丌为整数,要捕获INTEGERPARSEINT产生的异常,显示“请输入整数”,捕获输入参数丌足5个的异常数组越界,显示“请输入至少5个整数”。3.写一个方法VOIDSANJIAOINTA,INTB,INTC,判断三个参数是否能构成一个三角形,如果丌能则抛出异常ILLEGALARGUMENTEXCEPTION,显示异常信息A,B,C”丌能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行