有没有一种方法可以忽略“不可到达语句”错误?

63

有没有办法忽略这个错误?我觉得在不想运行的代码前放置 return 比注释更容易(当注释重叠且出现问题时)...


4
为什么要写一个让你的同事讨厌你的代码?为什么呢? - Nishant
7
我经常使用if (2 > 1) return;来进行调试。 - Denis Tulskiy
9
@Nishant 这只是为了调试,除非我直接使用它们,否则我不会让代码块乱放。 - Martin Melka
5个回答

116
不,这是一个编译时错误。因此在运行类之前,您必须消除它。
我通常的做法是在其前面加入一个假的if语句,例如:
if(true)
    return;
// unwanted code follows. no errors.
i++;
j++;

使用这段代码,你将不会收到Unreachable statement错误,并且能够获得你想要的结果。


21
由于1等于1始终为真,您可以用“if(true)”代替“if(1==1)”。 - Steve Kuo
3
从 C++ 转到 Java 后,感觉 Java 试图保护你并时刻提醒你注意,有时会把你带向错误的方向。不过这种解决方法还是不错的,因为 if (true) 可以提示可能存在问题,删除它的风险也稍微降低了一些。 - 463035818_is_not_a_number

4
33. if (1==1) return;
34. System.out.println("Hello world!");

它也适用于其他语言。但是没有第34行的ByteCode。


Javac似乎对if (true)...没有问题。编译器仍会将条件作为内置基本级别优化删除,但不会触发Unreachable Code错误。 - alife

3

0
如果您想多次禁用/启用代码中的某些部分,可以使用旧版 C 语言的技巧:
some_code();
more_code();
// */

/*
some_code();
more_code();
// */

现在你只需要在开头写上/*

-12

你需要修复那段代码 无法访问的代码

public void display(){
  return; //move the return statement to appropriate place
  int i;
}

编译器无法编译您的源代码。 您必须确保您的源代码每一行都可以被编译器访问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接