Java 异常处理面试题及答案:测试你的代码理解能力
10道Java异常处理面试题,测试你的代码理解能力!
以下10道关于Java异常处理的面试题,涵盖了异常类型、捕获、抛出、finally语句等知识点。测试你的Java基础知识,并学习正确的答案和解释。
1. 下面的程序的执行结果是()
public class Test {
public static void main(String [ ] args) {
new Test( ).test( );
}
public void test( ){
try {
System.out.print ('try');
} catch (ArrayIndexOutOfBoundsException e) {
System.out.print ('catch1');
} catch (Exception e) {
System.out.print ('catch2');
} finally {
System.out.println ('finally');
}
}
}
A. try finally B. try catch1 finally C. try catch2 finally D. finally
答案:B
**解释:**该程序不会抛出ArrayIndexOutOfBoundsException,而是抛出NullPointerException,因此会执行catch2块。
2. 以下代码的执行结果正确的是 ()
public class Animal {
public static void main(String[] args) {
try {
int num1 = 8;
int num2 = 0;
int result = num1 / num2;
System.out.println(result);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println('catch');
} catch (Exception e) {
System.out.println('catch2');
} finally {
System.out.println('finally');
}
}
}
A. 0,finally B. catch,finally C. catch2,finally D. finally
答案:C
**解释:**代码中num1 / num2会抛出ArithmeticException,所以会执行catch2块。
3. 在java中有如下方法:
public int count(int i) throws Exception{
if(i<0){
throw new Exception('参数不正确');
}
return i;
}
对该方法调用正确的是() A. public void useCount(){ count(8); } B. public void useCount() throws ArithmeticException { count(8); } C. public void useCount(){ try { count(8); } catch (Exception e) { e.printStackTrace(); } } D. public void useCount(){ try { count(8); } }
答案:C
**解释:**方法count声明抛出Exception,调用该方法时需要用try...catch捕获异常。
4. 在Java中,尝试对null对象操作时,会产生( )类型的异常 A. ArithmeticException B. NullPointerException C. IOException D. ClassNotFoundException
答案:B
解释:NullPointerException是尝试访问null对象的属性或调用null对象的方法时抛出的异常。
5. 在Java中,以下程序编译运行后的输出结果是( )。
public class Test{
public void add(int i) {
if(i == 0)
throw new NullPointerException();
System.out.println('add出现异常');
}
public static void main(String[] args) {
Test t = new Test();
try {
t.add(0);
System.out.println('add方法返回');
}catch(Exception e) {
System.out.println('捕获异常');
}
}
}
A. add出现异常 B. add出现异常 add方法返回 C. add方法返回 捕获异常 D. 捕获异常
答案:D
解释:add(0)抛出NullPointerException,被catch捕获,不会执行System.out.println('add方法返回');。
6. 在Java中,以下代码段的输出结果为()
public static void main(String[]args){
Int[] nums=new int[3];
for(int i=1;i<nums.length;i++){
nums[i]=i*2;
}
for(int i=0;i<nums.length;i++){
System.out.print(nums[i]);
}
}
A. 024 B. 246 C. 运行时出现异常 D. 编译错误
答案:C
**解释:**代码中nums[0]没有赋值,会导致ArrayIndexOutOfBoundsException异常。
7. 在Java中,以下代码段的输出结果为( )。
public static void main(String[] args) {
String[] girls = new String[4];
girls[0] = 'alise';
girls[1] = 'mary';
girls[2] = 'keirly';
for(int i = 1; i<girls.length ; i++){
System.out.print(girls[i]+',');
}
}
A. alise,mary,keirly B. 运行时出现NullPointerException异常 C. alise,mary,keirly,null, D. mary,keirly,null,
答案:D
**解释:**代码中girls[3]没有赋值,值为null,会导致输出null。
8. 以下代码输出结果为()
public class Test{
public static void main(String []args){
List<Integer> list = new ArrayList<Integer>();
list.add(123);
list.add('abc');
list.remove(1);
System.out.println(list.get(0));
}
}
A. 编译时发生错误 B. 正确运行,输出:123 C. 正确运行,输出 'abc' D. 运行时引发异常
答案:D
解释:list.add('abc')语句错误,'abc'是字符,不能添加到List<Integer>中,会抛出ClassCastException异常。
9. java中异常的顶层父类是 ( ) A. Throwable B. Exception C. Error D. Throws
答案:A
解释:Throwable是所有异常和错误的超类。
10. 给定如下Java程序,这段程序编译运行后的输出结果是( )。
public class Test {
public static void aMethod() throws Exception {
try{
throw new Exception();
}finally{
System.out.print('Finally');
}
}
public static void main(String[] args) {
try{
aMethod();
}catch(Exception e) {
System.out.print('Exception');
}
System.out.print('Finished');
}
}
A. FinallyException B. Finally C. ExceptionFinallyFinished D. FinallyExceptionFinished
答案:A
解释:finally块无论是否抛出异常都会执行,因此会输出Finally。Exception会从aMethod抛出到main方法,被catch捕获,输出Exception。最终输出FinallyException。
希望这些面试题能够帮助你更好地理解Java异常处理机制,并为你的面试做好准备。如果你有任何问题,请随时提问。
祝你面试顺利!
原文地址: https://www.cveoy.top/t/topic/oazB 著作权归作者所有。请勿转载和采集!