今天遇到了个之前都没遇到的报错,也就是unreachable code(不可获得的代码),还第一次遇eclipse帮解决问题是把那段代码删除。代码简化了一下:
public class Test {
public static void main(String[] args) {
demo1();
}
public static void demo1() {
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
while (true) {
if(number > 100){
return;
}
}
System.out.println("123"); ###此处报错
}
}
网上搜了下,看到很多样例,看了明白,也不知道怎么解释,就把搜到的一些代码给记录一下。
- throw关键字
public class Test {
public static void main(String[] args) {
}
public void XXX() throws Throwable{
throw new Throwable();
System.out.println("test");
}
}
2.return关键字
public class Test {
public static void main(String[] args) {
}
public void XXX() {
return;
System.out.println("test");
}
}
3.continue关键字
public class Test {
public static void main(String[] args) {
}
public void XXX() {
for(int i=0; i<10; i++) {
continue;
System.out.println("test");
}
}
}
4.break关键字
public class Test {
public static void main(String[] args) {
}
public void XXX() {
for(int i=0; i<10; i++) {
if(i==5) {
break;
System.out.println("test");
}
}
}
}
5.while(true)
public class Test {
public static void main(String[] args) {
}
public static void XXX() {
while(true);
System.out.println("when?");
}
}
看了下,大概可以理解为后面的报错的代码,不可获得的代码的意思就是,在上面那些情况之后,报错的那段代码可能运行不到,所以报错。其实知道了这个代码还能改,要是第一次遇到这情况,真是无从下手。