站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题不明白这里为什么有异常?

不明白这里为什么有异常?

摘要: 不明白这里为什么有异常?


class Student{
private int rollNo;
private String name;
public void setrollNo(int rollNo){
this.rollNo = rollNo;
}
public void setName(String name){
this.name = name;
}
public int getrollNo() {
return rollNo;
}
public String getName() {
return name;
}
public static void main(String args[]){
Student[] arrStudent = new Student[2];
try{
arrStudent[0].setrollNo(1001);
//arrStudent[1].setrollNo(1002);
}
catch(NullPointerException e1) {
System.out.println("#1Dealt it already!");
}
finally{
try{
System.out.println(arrStudent[0].getrollNo());
}
catch(NullPointerException e2) {
System.out.println("#2Dealt it already!");
}
}
}
}
e1,e2我做了处理,但我还是不明白为什么会有异常出现.


public static void main(String args[]){
Student[] arrStudent = new Student[2];
arrStudent[0] = new Student();
arrStudent[1] = new Student();

因为你只是定义了它,没有给它赋值。也就是说你只是申明了Student指针,但没有指向具体的类。


catch(NullPointerException e2)

因为你只是捕获了NullPointerException异常,出现其他异常仍然是会出现的

try{
System.out.println(arrStudent[0].getrollNo());
}
catch(NullPointerException e2) {
system.out.println("#2Dealt it already!");
}
catch(Exception ex) {
system.out.println(ex.toString) //Exception是所有异常的父类,这样就可以捕获所有异常
}

多重Catch,如果出现指定的"NullPointerException"就会执行属于它catch段,其他异常则会进入后面的catch段



一楼说的对,楼主只是定义了数组,但对每个元素没有赋值,默认是null,自然会抛空指针


↑返回目录
前一篇: 问个jsp中的问题,在线等!谢谢!
后一篇: 一个数组引用的问题!