java中的异常处理-帮助我创建&;封装异常类 免责声明

java中的异常处理-帮助我创建&;封装异常类 免责声明,java,exception-handling,encapsulation,Java,Exception Handling,Encapsulation,您好,您可以说这是一个可以通过谷歌搜索的问题,但我一直在四处寻找,我看到的所有示例都是针对某个特定问题的,所以我决定只发布我自己的问题和我的特定问题-这里有一些代码: (我不想发布它,因为我不想有人在谷歌上搜索我的代码,在网上找到它,并认为我从某个地方复制了它,因为这个网站会出现……请将它放在粘贴箱中。如果它以某种方式被删除,我会立即再次发布)。 我希望你们能欣赏我所有的标题…:P每次我使用这个网站时,我都会因为有一个不清楚的问题而受到指责,所以我希望这个问题很容易理解 现行守则的解释 该代码接

您好,您可以说这是一个可以通过谷歌搜索的问题,但我一直在四处寻找,我看到的所有示例都是针对某个特定问题的,所以我决定只发布我自己的问题和我的特定问题-这里有一些代码: (我不想发布它,因为我不想有人在谷歌上搜索我的代码,在网上找到它,并认为我从某个地方复制了它,因为这个网站会出现……请将它放在粘贴箱中。如果它以某种方式被删除,我会立即再次发布)。 我希望你们能欣赏我所有的标题…:P每次我使用这个网站时,我都会因为有一个不清楚的问题而受到指责,所以我希望这个问题很容易理解

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

我该怎么办 我现在有一个环境类,它将“风速”作为私有属性。简言之,我需要创建一个面向对象的版本的代码,我已经在粘贴箱

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

我需要什么帮助 我真的不知道从哪里开始。 在我现在的代码中,我看到我需要两个异常——一个是inputMismatch(已经是java的一部分),另一个是如果我输入的值太高/太低

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

终极问题 (a) 如果用户输入的值太高/太低,如何创建自己的异常以引发异常? (b) 如何将已经存在的异常合并到流程中

我可能可以从那里找到剩下的-我只需要一个地方开始

试试看{
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);
}
//得到号码 如果(numbermaxRange){ 抛出新的IllegalArgumentException(); } //其他的东西 }捕获(输入不匹配异常e){ System.out.println(“无效输入!”); 系统退出(-1); }
公共类环境{
私人双风速;
公共环境(双速)引发myException{
if(速度最大值){
抛出新的myException();
}
}
类myException扩展了异常{
}
}

这让人非常困惑。
如果我提供的值是非法的,那么程序的行为应该与以前一样。
的意思是什么?请更改您的配置文件并使用您的真实姓名,而不是用户3225959。这样一来,你的第一个顾虑就会消失,你就可以像你应该做的那样在这里发布你的代码。@尽管我有很多标题,但仍然感到困惑的人:如果我为我的风速输入值“3&^ f”,它将打印“3&^ f不是一个数字”,如果我输入的值高于20或低于-20,它将打印“你输入的数字超出范围”谢谢我在“Environment”类的构造函数中加入try catch是否正确?是的,我相信它就是这样做的。这个数字将是OOP中构造函数的一个参数。谢谢!!这回答了我的问题!如何让类抛出异常?我知道我必须在某个地方写“…抛出myException”,但我不记得它去了哪里。你只会在数字超出范围时抛出一个异常。我的构造函数头是-public Environment(double vw)抛出IllegalInputException{,IllegalInputException用红色下划线,它告诉我它“无法解析为类型”,如果你能发布源代码,那就太好了。
  public class Environment {
private double windspeed;

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


 }


 class myException extends Exception{

 }
}