当前位置: java社区 > 04-粗通皮毛 > 阅读正文

java异常测试题

2021.8.31.   532 次   1267字

1.throw和throws有什么区别?

2.发生异常后,如何跟踪堆栈异常信息?

3.一个方法声明抛出异常,调用者如果不进行任何处理,程序能否运行?

4.在一个方法中,能否既throw抛出异常,又把它捕获?如果可以,方法调用者是否需要处理该异常?如果不可以,为什么不可以?

5.以下代码能否运行?如果错了,哪行错了?为什么错?

//import java.io.*;
public static void main(String[] args){
    try(FileWriter fw = new FileWriter("D:\\a.txt",true);){
        for(int i=0;i<10;i++){
        fw.write("abc"+i+"\r\n");
        }
    }catch(IOException e){
        System.out.println(e);
    }finally{
        fw.close();
    }
}

6.以下checkPassWord方法代码是否错误?如果错了,哪行错了?为什么错?如果正确,运行结果是什么?

public static void main(String[] args){

    String pwd = "12345678";
    System.out.println("密码"+pwd+"是否符合要求?"+checkPassWord(pwd));
}

public static boolean checkPassWord(String pwd){
// 检测pwd字符串,至少包含8个字符,如果不符合则抛出一个java.lang.NumberFormatException
    if(pwd.length()<8){
        throw new NumberFormatException("密码错误");
        return false;
    }
    else {
        return true;
    }
}

7.以下代码执行结果是什么?

public static void main(String[] args){
    int[] a = new int[10];
    try{
        System.out.println(a[10]);
        System.out.println(a[1]);
    }catch (Exception e){
        System.out.println(1);
    }
    try{
        System.out.println(a[10]);
    }catch (Exception e){
        System.out.println(2);
    }
    System.out.println(a[1]);
}

8.如果在main中声明抛出异常,一旦发生异常,main会将异常抛给谁?程序是否会被终止?这说明了什么?

9.在使用try-catch时,能否捕获编译期异常?能否捕获运行期异常?能否捕获Error?能否捕获Throwable?能否捕获Object?

10.方法覆盖后,能否抛出抛出(throw)更大的异常?能否声明抛出(throws)更大的异常?

11.调用方法时,不捕获异常,能否抛出(throw)更小的异常?能否声明抛出(throws)更小的异常?

12.方法中抛出(throw)异常时,本身也不捕获,是否需要声明抛出(throws)异常?

本篇完,还有疑问?

加入QQ交流群:11500065636 IT 技术交流群