日期:2014-05-20  浏览次数:20879 次

关于Java的一个自定义抛处异常问题
下面是一个温度检测的小程序,请问是怎么回事啊,。执行不了


import   java.io.*;

//自定义异常
class   TmpException   extends   Exception  
{
TmpException(String   a)  
{
super(a);
}
}

public   class   Test3
{


public   static   void   main(String   args[])
{
float   tmp;
try   {

  tmp   =   Float.parseFloat(args[0]);

}  
catch   (ArrayIndexOutOfBoundsException   e)
{
System.out.println( "请输入一个参数 ");
}  
catch   (NumberFormatException   e)  
{
System.out.println( "请输入一个数字 ");
}  
catch   (TmpException   e)
{
System.out.println( "输出温度 "+tmp);
}  
}

static   void   checktmp(float   t)   throws   TmpException
{
if   (t   <   -273.15)  
{
throw   new   TmpException( "温度不能低于绝对零度 ");
}
}

}

------解决方案--------------------

//自定义异常类
class TmpException extends Exception {
TmpException(String a) {
super(a);
}
}

public class Test3 {

public static void main(String args[]) {
float tmp = 0f; //初始化
try {

tmp = Float.parseFloat(args[0]);
checktmp(tmp); //要调用这个方法才可能抛出自定义异常
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println( "请输入一个参数 ");
} catch (NumberFormatException e) {
System.out.println( "请输入一个数字 ");
} catch (TmpException e) {
System.out.println( "输出温度 " + tmp);
}
}

static void checktmp(float t) throws TmpException {
if (t < -273.15) {
throw new TmpException( "温度不能低于绝对零度 ");
}
}

}


两个问题