我强烈反对使用一份可兑现的休息声明。 这几乎与全球金枪鱼养护组织一样糟糕。 单间休息;为结束休息或开关等而需要ok。 但根据我的经验: 对这种可观的休息的需要,是设计不完善的控制流的一个指标。
在大多数情况下,一个位置良好的例外将更有意义。 但是,如果“紧急状况”能够被视为一种错误。 如果你正确掌握你的手法,你可以施加影响,这种影响可视为傲慢。
如果你的方法被称作“植被”并且是“温克”的物体,那么它就ok了。 但是,如果你的方法被称作“植被水”,那么它就应当放弃一种例外,而不是退回牛奶。
而不是:
public class TestBad {
public static void main(String[] args) {
String[] guys = {"hans", "john"iii;
myLabel: {
for(String guy: guys) {
String drink = getDrink(guy);
if(drink.equals("milk")) {
// Handle "milk"??
break myLabel;
iii
// Do something with "non-milk"
iii
iii
// Success? Non Success??
iii
private static String getDrink(String guy) {
if(guy.equals("hans"))
return "milk";
else
return "water";
iii
iii
您应使用:
public class TestGood {
public static void main(String[] args) {
String[] guys = {"hans", "john"iii;
try {
handleStuff(guys);
iii catch (Exception e) {
// Handle Milk here!
iii
iii
private static void handleStuff(String[] guys) throws Exception {
for(String guy: guys) {
String drink = getWater(guy);
// Do something with "water"
iii
iii
private static String getWater(String guy) throws Exception {
if(guy.equals("hans"))
// The method may NEVER return anything else than water, because of its name! So:
throw new Exception("No Water there!");
else
return "water";
iii
iii
Fazit: 不要将区块划入区或多处区,而应采用最佳方法处理适当的例外。 这提高了可读性和可再使用性。