Java 我的异常以及抛出和获取消息中的错误是什么?
我有代码,我想知道哪里是错误,请你能帮我:只有一个错误在抛出行Java 我的异常以及抛出和获取消息中的错误是什么?,java,exception,getmessage,Java,Exception,Getmessage,我有代码,我想知道哪里是错误,请你能帮我:只有一个错误在抛出行 public static void main(String[] args) { try { Scanner input = new Scanner (System.in); System.out.println("Enter the number "); int x1 = input.nextInt(); int i; if (x1>=0
public static void main(String[] args) {
try {
Scanner input = new Scanner (System.in);
System.out.println("Enter the number ");
int x1 = input.nextInt();
int i;
if (x1>=0&&x1<=100) {
i= (int) Math.pow(x1,2);
System.out.println("the squre of "+ x1 + " is "+ i);
}
else
throw new MyException(); // what is the error here?
} catch(MyException me) {
System.out.println(me);
String message = me.getMessage();
}
}
public class MyException extends Exception {
public String getMessage() {
return " the number is out of ring";
}
}
}
publicstaticvoidmain(字符串[]args){
试一试{
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入编号”);
int x1=input.nextInt();
int i;
如果(x1>=0&&x1首先,您的getMessage方法在MyException类之外。其次,您试图调用一个名为getMessage()的方法,这在main方法中无法完成,您必须调用我。getMessage()看起来您还没有完全发布整个类,但是根据错误消息来看,MyException
似乎发生在您的类中,类似于:
public class TheClass {
public static void main(String[] args) {
....
}
public class MyException extends Exception {
....
}
}
这使得MyException
成为一个内部类。因此MyException
的每个实例都必须“属于”类的一个实例。这就是为什么会得到“非静态变量This”错误消息。当您说newmyException
时,您在静态main
方法中,因此它无法知道新MyException
对象将属于类的实例
我认为您不希望它成为一个内部类。请将MyException
移动到类之外,或者将其设置为静态:
public static class MyException extends Exception {
将其设为静态将使其成为“嵌套的”,而不是“内部的”类,这样它就不属于类的实例了。不过,您可能想将它移到外部。我看不出它存在于其他类中的充分理由。这是您的实际代码吗?您的throw/catch语句看起来有误。请清理帖子好吗?编译器会告诉您错误的确切位置。您是怎么做的编译器说错误是?顺便说一句,我在抛出新MyException()时没有收到错误。我已尝试清理帖子,以便其他人能够理解。显然有一个}
MyException之后它不属于的地方。
我不知道为什么在抛出时会出现错误,因为我没有得到错误;您需要告诉我们编译器说错误是什么。非静态变量无法从静态上下文引用此变量谢谢您,我编辑了它。我在抛出时仍然有错误ei在抛出行上仍然有一个错误您做了什么更改,是同一个错误还是不同的错误?请不要在StackOverflow上告诉我们编译器给了您一个错误,而不告诉我们它是什么。不要对我们隐藏信息。非静态变量这不能从静态变量引用context@GhadaAliOthman做你做了我在回答中建议的任何一个更改?如果是,是哪一个?在掷骰线上..我编辑我的帖子