Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的异常以及抛出和获取消息中的错误是什么?_Java_Exception_Getmessage - Fatal编程技术网

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做你做了我在回答中建议的任何一个更改?如果是,是哪一个?在掷骰线上..我编辑我的帖子