JAVA异常处理问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 06:57:22
Java的异常类型识别
1. 请看以下定义
String s = null;
(1) if ((s != null)& (s.length()>0)) ;
(2) if ((s != null)&& (s.length()>0)) ;
(3) if ((s == null)| (s.length() == 0)) ;
(4) if ((s == null)|| (s.length() == 0)) ;
哪几个会引发异常?会引发哪种类型的异常?
最好说明异常原因

1和3会抛java.lang.NullPointerException
因为s为null,没有指向任何实例,也就无法调用任何方法

2和4不抛是因为&&和||的运算法则
在&&逻辑与时,如果左侧的表达式已经为false,不管右侧值为什么,最终都为false,所以就不再计算右侧,直接返回false,如果左侧为true,则再计算右侧,然后再返回
||逻辑或时相反,如果左侧表达式为true,不管右侧是什么,结果都为true,所以也不再计算右侧,如果左侧为false,则再计算右侧,然后返回

第一和第三会抛出异常
java.lang.NullPointerException

考查的是简单逻辑还是完全逻辑。。。

第一个 nullPointer 异常
第二个没有
第三个也是
第四个没有异常

没有引起异常:
public class Print {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = null;
if ((s != null) && (s.length() > 0))
System.out.println("1.yes");
else
System.out.println("1.no");

if ((s != null) && (s.length() > 0))
System.out.println("2.yes");
else
System.out.println("2.no");
if ((s == null) || (s.length() == 0))
System.out.println("3.y