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