java中的异常处理 - 帮助我创建&封装异常类

时间:2014-03-02 16:38:07

标签: java exception-handling encapsulation

声明

嗨,你可以说这是一个google-able问题,但我一直在环顾四周,我看到的所有例子都是针对某个问题的超级具体,所以我决定只针对我的具体问题发布自己的问题 - 这里的一些代码:http://pastebin.com/5ttK8Dry (我不希望它发布,因为我不希望有人搜索我的代码,在网上找到它,并认为我从某个地方复制它,因为这个网站会显示...请把它留在pastebin中。如果它以某种方式被删除,我会立即再次发布)。 我希望你们能够欣赏我的所有标题......:P每次我使用这个网站时都会因为一个不清楚的问题而感到害怕,所以我希望这个问题非常简单!

当前代码的说明

代码接受用户输入的风速。它使用通用的try-catch块来停止输入不匹配异常,并使用if语句确保输入的值在合法范围内。 (见pastebin)

我必须做什么

我现在有一个环境类,它具有“风速”作为私有属性。简而言之,我需要在pastebin中创建一个面向对象的代码版本。

我所知道的

我必须编写自己的异常代码并封装它们,然后在我在主类中设置windpeed时抛出它们 - 如果我提供的是非法的值,程序应该像以前一样运行。

我需要帮助

我真的不知道从哪里开始。 在我现在的代码中,我看到我需要2个例外 - 一个用于inputMismatch(已经是java的一部分),如果我输入一个太高/太低的值,则为一个。

我知道我必须为后者编写我自己的例外代码,但前者呢?那个例外已经存在......

最终问题

(a)如果用户输入的值太高/太低,如何创建自己的异常? (b)如何将已存在的异常纳入流程?

我可以从那里弄清楚剩下的 - 我只需要一个开始的地方。

2 个答案:

答案 0 :(得分:0)

try{
//get number

if(number<minRange || number>maxRange){
 throw new IllegalArgumentException();
}

//Rest of stuff


}catch(InputMismatchException e){
 System.out.println("Invalid input!");
 System.exit(-1);
}

答案 1 :(得分:0)

  public class Environment {
private double windspeed;

 public Environment(double speed) throws myException{
    if(speed<min || speed>max){
     throw new myException();
 }


 }


 class myException extends Exception{

 }
}