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

chaoclv 2006-11-01 11:12:41
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我做了处理,但我还是不明白为什么会有异常出现.
...全文
175 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cuiyingfeng 2006-11-02
  • 打赏
  • 举报
回复
一楼说的对,楼主只是定义了数组,但对每个元素没有赋值,默认是null,自然会抛空指针
bigelf 2006-11-02
  • 打赏
  • 举报
回复
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段
lydvqq 2006-11-02
  • 打赏
  • 举报
回复
public static void main(String args[]){
Student[] arrStudent = new Student[2];
arrStudent[0] = new Student();
arrStudent[1] = new Student();

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

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧