1.下面代码运行结果是( )
public class Demo{
public int add(int a,int b){
try{
return a+b;
}catch(Exception e){
System.out.print(“catch 语句块”);
}finally{
System.out.print(“finally 语句块”);
}
return 0;
}
public static void main(String[] args){
Demo demo = new Demo();
System.out.println(“和是:”+demo.add(9,34));
}
}
A) 编译异常
B) finally语句块 和是:43
C) 和是:43 finally语句块
D) catch语句块 和是:43
答案: B
2. s为null, 下列会报错的有?
A) if( (s!=null) & (s.length()>0) )
B) if( (s!=null) && (s.length()>0) )
C) if( (s==null) | (s.length()==0) )
D) if( (s==null) || (s.length()==0) )
答案: AC
注意: 短路| &两边的表达式均执行
3. 控制台输出结果是?
public static void test(int[] arr){
for(int i=0;i<arr.length;i++){
try{
if(arr[i]%2==1){
throw new NullPointerException();
}else{
System.out.print(i);
}
}finally{
System.out.print(“e”);}
}
}
public static void main(String[] args){
try{
test(new int[]{2,2,2,1,0});
}catch(Exception e){
System.out.print(“E”);
}
}
答案: 0e1e2eeE
try-catch中: 先执行finally 再 执行return或throw异常
不catch,若出现异常则到finally程序就结束