繁体   English   中英

从ubuntu 12.04移至10.04时Java中出现异常错误

[英]Exception error in java when moving from ubuntu 12.04 to 10.04

我正在使用Sparrow的Kmax制作数据采集软件。 我正在ubuntu 12.04笔记本电脑上编写代码。 我创建的方法之一如下

public double getValueFrom(String widgName) {//Read data from user input text fields
    KmaxWidget widg = tlsh.getKmaxWidget(widgName); 
    String str = widg.getProperty("TEXT");

    double num = 0;
    try {
        num = Double.parseDouble(str);
    }
    catch (Exception e) {
        tlsh.setProperty("STATUSSTR", "Attention! Channel and Energy must be double precision number. i.e. 10, 3.14 etc.");
        tlsh.showWarning("Choose a double precision number.");
        throw e;
    }
    return num; 
} // getValueFrom

当我在笔记本电脑上编译代码时,它没有任何错误。 将代码复制到ubuntu 10.04桌面时,出现异常代码

unreported exception java.lang Exception: must be caught or declared to be thrown
throw e;
^

我想到的第一件事是它们具有不同版本的Java。 的确如此,所以我更新了10.04的Java,但同样发生了同样的错误。 有什么问题的想法吗?

编辑我还添加了方法的参数后throws Exception ,但是每当调用此方法时,我都会得到错误(在两个系统上)

unreported exception Exception; must be caught or declared to be thrown

该问题的出现是由于:

 throw e;

由于您是从catch块中抛出一个java.lang.Exception对象,因此您的方法签名必须包含throws子句来说明这一点,因此您的方法签名现在变成了(否则编译器会抱怨):

  public double getValueFrom(String widgName) throws Exception

此更改将解决问题。

正如异常所说明的那样,该函数应该通过父类的异常,因此您可以通过如下所示的示例来定义函数

public double getValueFrom(String widgName) throws Exception
{
 // body
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM