暂停使用Java+;结束方法

暂停使用Java+;结束方法,java,greenfoot,Java,Greenfoot,我想对Greenfoot的一个学校项目说,如果漫游者遇到系统错误,它应该输出该错误,然后等待一小段时间,然后终止当前方法。但是,暂停被标记为以下错误代码:未报告的异常java。lang.InterupptedException;必须是cougt或声明为抛出,因为我对Java非常陌生,不知道要更改什么。此外,他应该结束该方法,但使用当前命令,整个场景就结束了 " 您必须仔细阅读Java中的异常处理。sleep方法可能会被中断,从而引发InterruptedException。您可以转发此异常,也可

我想对Greenfoot的一个学校项目说,如果漫游者遇到系统错误,它应该输出该错误,然后等待一小段时间,然后终止当前方法。但是,暂停被标记为以下错误代码:未报告的异常java。lang.InterupptedException;必须是cougt或声明为抛出,因为我对Java非常陌生,不知道要更改什么。此外,他应该结束该方法,但使用当前命令,整个场景就结束了

"


您必须仔细阅读Java中的异常处理。
sleep
方法可能会被中断,从而引发
InterruptedException
。您可以转发此异常,也可以忽略它。 若要转发异常,请声明函数a

public void check() throws InterruptedException
但是这个函数的调用者将不得不处理这个潜在的异常。因为中断在这里看起来不是一个严重的问题(睡眠时间比两秒钟短一点),所以忽略这个异常是可以的:

try { java.util.concurrent.TimeUnit.SECONDS.sleep(2); }
catch (InterruptedException ignored) {}
要仅从当前方法返回,请使用
return
而不是
System.exit()

import java.io.*;

public class Yourclass{



public void Rover (String pname, char pfrequenz, int penergie)
{
    Integer energie = penergie;
    String name = pname;
    Integer temp = 15 ;
    Integer distance = 0;
    boolean systemcheck = true;
    char frequenz = pfrequenz ;
}

public  void check() throws IOException
{

    if (markeVorhanden())
    {
        energie = energie + 100;
    }
    if (energie == 0){
        systemcheck = false;

    }


    if (systemcheck = false){
        nachricht("System Failure");
        throw new IOException("sorry device error");  
    }
    if (distance > 100){
        nachricht("Congrats you have passed 100");
    }
    anzeige.anzeigen("Akku:  "+energie+ "  %");


}


 public static void main(String []args) throws InterruptedException
 {
     Yourclass demo= new Yourclass();
    System.out.println("Hello World");
    try{
        demo.check();
    }
    catch(Exception e)
    {
       Thread.sleep(2000);
       System.out.println("function stopped"); 
    }
 }
}

当我使用这个方法时,我不能简单地使用check();在其他方法中如何编写它们?您面临的问题是什么?如果您只是忽略异常,那么事情应该会很好?因此仍然存在一个错误:publicstaticvoidmain(String[]args)抛出InterruptedException{System.out.println(“helloworld”);试试看{check();}catch(异常e){Thread.sleep(2000);System.out.println(“函数已停止”);}}检查()被标记并给出错误:无法从静态上下文引用非静态方法check()。请注意,
if(systemcheck=false)中存在键入错误{
。您需要两个
=
符号,否则该条件将永远不会为真。
import java.io.*;

public class Yourclass{



public void Rover (String pname, char pfrequenz, int penergie)
{
    Integer energie = penergie;
    String name = pname;
    Integer temp = 15 ;
    Integer distance = 0;
    boolean systemcheck = true;
    char frequenz = pfrequenz ;
}

public  void check() throws IOException
{

    if (markeVorhanden())
    {
        energie = energie + 100;
    }
    if (energie == 0){
        systemcheck = false;

    }


    if (systemcheck = false){
        nachricht("System Failure");
        throw new IOException("sorry device error");  
    }
    if (distance > 100){
        nachricht("Congrats you have passed 100");
    }
    anzeige.anzeigen("Akku:  "+energie+ "  %");


}


 public static void main(String []args) throws InterruptedException
 {
     Yourclass demo= new Yourclass();
    System.out.println("Hello World");
    try{
        demo.check();
    }
    catch(Exception e)
    {
       Thread.sleep(2000);
       System.out.println("function stopped"); 
    }
 }
}