语句和异常
原创大约 1 分钟
Statement
Aviator中每条语句都有值。
let a = if (true) {
## 这里如果加上分号,结果会变成nil = null
1;
};
println("a is : " + type(a) + " = " + a);
let b = if (false) {
## 这里加不加分号都是nil = null
2;
};
println("b is : " + type(b) + " = " + b);
let c = if (false) {
## 这里加不加分号都是nil = null
2;
} else {
## 这里如果加上分号,结果会变成nil = null,就和a一样了
3
};
println("c is : " + type(c) + " = " + c);
循环语句的结果是最后一次迭代过程中返回的值。
let a = for x in range(0, 10) {
## 如果需要返回值就不要加分号,如果加上break/continue,那无论如何都是nil
x;
};
println("a is : " + type(a) + " = " + a);
分号规则、中断规则(break/continue
)、返回值(return
)规则适用于所有的语句或语句块。
异常处理
## 运行后仅仅输出finally,并没有抛出异常
try {
throw "an exception";
## 如果换成throw new IllegalArgumentException("IllegalArgumentException"); 就不会输出finally了
} catch(e) {
## 这个pst(e)方法根本不打印任何东西
pst(e);
} finally {
println("finally1");
}
try {
throw new IllegalArgumentException("IllegalArgumentException2");
} catch(IllegalArgumentException e) {
## 捕获IllegalArgumentException异常,打印catch IllegalArgumentException2
println("catch IllegalArgumentException2");
} finally {
## 输出finally2
println("finally2");
}
## 不管这条语句放在哪,都只会输出它
throw new IllegalArgumentException("IllegalArgumentException1");
多个异常也可以像Java那样放在一起。
try {
throw new java.io.IOException("IOException");
} catch(IllegalArgumentException | java.io.IOException e) {
println("catch IOException");
} finally {
println("finally3");
}
感谢支持
更多内容,请移步《超级个体》。