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)异常?
