java 语言程序设计-李尊朝 第9章 异常处理
2013-04-15 15:42
344 查看
异常指程序运行过程中出现的非正常现象。
9.1java异常处理机制
在Java中,将异常情况分为Exception(异常)和Error(错误)两大类。Error类对象由Java虚拟机生成并抛出;Exception类对象由应用程序处理或抛出
异常类的继承结构其中Exception和Error又包含许多子类,exception子类的继承关系9.1java异常处理机制
在Java中,将异常情况分为Exception(异常)和Error(错误)两大类。Error类对象由Java虚拟机生成并抛出;Exception类对象由应用程序处理或抛出
通常情况下,异常是由系统自动捕获的。但程序员也可以自己通过throw语句抛出异常。throw语句的格式为:
thrownew异常类名(信息)
其中异常类名为系统异常类名或用户自定义的异常类名,“信息”是可选信息。如果提供了该信息,toString()方法的返回值中将增加该信息内容
在一些情况下,一个方法并不需要处理它所生成的异常,而是向上传递,由调用该方法的其他方法来捕获该异常,这时就要用到throws子句。
使用格式如下:
返回值类型名方法名([参数表])throws异常类型名
{
声明部分
语句部分
}
例9-4抛出异常的方法
publicclassException5{
publicstaticintx=100000;
publicstaticintmulti()throwsOverFlowException
{
intaim;
aim=x*x*x;
if(aim>1.0E8||aim<0)
{
thrownewOverFlowException();
}
else
returnx*x;
}
publicstaticvoidmain(Stringargs[])
{
inty;
try
{
y=multi();
System.out.println("y="+y);
}
catch(OverFlowExceptione)
{
System.out.println(e);
}
}
}
publicclassMathExceptionextendsException{
MathException()
{
System.out.println("输入数据不正确");
}
}
importjavax.swing.JOptionPane;
publicclassException6{
publicstaticStringname;
publicstaticintpay;
publicstaticvoidinputdata()throwsMathException
{
try
{
name=JOptionPane.showInputDialog("请输入您的姓名");
if(name.equals(""))thrownewException();
//假如没有输入名字就"抛出"一个Exception异常
pay=Integer.parseInt(JOptionPane.showInputDialog("请输入您的月工资"));
if(pay<0)thrownewMathException();
//假如输入的月工资数小于零,就会"抛出"自定义异常mathException
}
catch(Exceptione) //捕获Exception异常
{
System.out.println(e);
System.exit(0);
}
}
publicstaticvoidmain(Stringargs[])
{
try
{
for(inti=1;;i++) //没有给出循环次数限制
{
inputdata();
System.out.println(name+"的年薪是"+pay*12);
}
}
catch(MathExceptionpt) //捕获自定义异常
{
System.out.println(pt);
System.exit(0);
}
}