 |
|
|
| |
作者:Rodger Snow [原创] |
责任编辑:lujiezhen |
//因为异常类是定义在java.lang包中的,所以不需要导入,系统自己能识别
class CustomerCareExecutive //定义接收客户数据类
{
String Name;
int Age;
public void displayDetails() //显示数据函数
{
System.out.println(Name);
System.out.println(Age);
}
}
public class ExecutiveCollection
{
CustomerCareExecutive exObjects[]; //定义客户类对象数组
public ExecutiveCollection()
{
try //因为下面的某些语句可能会出现异常,所以用try括起来
{
/*给数组分配三个空间(请注意,程序只有加上下面这行代码才是正确的!现在是学习异常处理,所以暂时先注释掉,呆会大家可以恢复后运行看看)*/
//exObjects=new CustomerCareExecutive[3];
for(int ctr=0;ctr!=3;ctr++)
{
exObjects[ctr]=new CustomerCareExecutive(); //产生空对象异常
}
exObjects[0].Name="Rodger";
exObjects[0].Age=Integer.parseInt("10+11"); //产生字符串转换为数字失败异常
exObjects[1].Name="Micier";
exObjects[1].Age=18;
exObjects[2].Name="Lisa";
exObjects[2].Age=16;
}
catch(NullPointerException e) //对空对象指针的处理
{
System.out.println("空指针异常!");
}
catch(NumberFormatException e) //对转换失败的处理
{
System.out.println("字符串转换为数值异常!");
}
finally //不管是否出错异常都会处理这里的语句
{
System.out.println("最后处理!");
}
}
public void displayCollection()
{
for(int ctr=0;ctr!=3;ctr++)
{
exObjects[ctr].displayDetails(); //注意,如果前面的对象数组为空,这里也会引发异常的!
}
}
public static void main(String args[])
{
ExecutiveCollection collectionObj;
collectionObj=new ExecutiveCollection();
collectionObj.displayCollection();
System.out.println("所以记录打印完成!");
}
}
上面程序就是异常的用法,我们往后学习的教程,大部分都需要用到异常处理,不然可能会编译出错的,不过不要紧,如果编译出错的话,它会告诉你错误信息,如果是没有加哪个异常,编译器会提示的!所以这些不必担心,大家慢慢研究吧!在这里我不打算讲自定义异常,因为它不像系统定义的系统这样可以直接使用,需要抛出自定义异常才能进行异常捕获和处理。再说一般情况下真的很少会用到的,当然哪位朋友有兴趣的话,可以跟我联系吧,我再跟你简单的说一下就是啦~目前来说,一般都是用系统定义的异常。下回我们讲文件读写,个人认为,有些难度哦~
|
|
|
 |