Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

237 строки
3.7 KiB

fun println() {
apply(print, __arguments__);
print("\n");
__arguments__;
}
fun ok() {
println("OK!");
}
fun ko() {
println("KO!");
throw "this is ko'd";
println("CANNOT HAPPEN");
}
println("----------------A");
try {
println(ok());
}
println("----------------B");
try {
println(ko());
}
println("----------------C");
try {
println(ko());
}
finally {
println("CLEANUP 1");
}
println("----------------D");
try {
println(ko());
}
catch (e) {
println("CAUGHT ", e);
}
println("----------------E");
try {
println(ko());
}
catch (e) {
println("CAUGHT ", e);
}
finally {
println("CLEANUP 2");
}
println("----------------F");
try {
try {
println(ko());
}
catch (e) {
println("CAUGHT ", e);
throw "throwing in catch"
}
finally {
println("CLEANUP 3");
}
} catch (e) println(e);
println("----------------G");
try {
try {
println(ko());
}
catch (e) {
println("CAUGHT ", e);
}
finally {
println("CLEANUP 4");
throw "throwing in finally"
}
} catch (e) println(e);
println("----------------H");
try {
try {
println(ko());
}
catch (e) {
println("RETHROW ", e);
throw e;
}
finally {
println("CLEANUP 5");
}
}
catch (e) {
println("CAUGHT ", e);
}
println("----------------I");
try {
try {
try {
try {
try {
try {
println(ko());
}
catch (e) {
println("RETHROW 6 ", e);
throw e;
}
finally {
println("CLEANUP 6");
}
}
catch (e) {
println("RETHROW 7 ", e);
throw e;
}
finally {
println("CLEANUP 7");
}
}
catch (e) {
println("CAUGHT 8")
}
finally {
println("CLEANUP 8");
}
}
finally {
println("CLEANUP 9");
}
}
finally {
println("CLEANUP 10");
}
}
catch (e) {
println("CAUGHT 11 ", e);
}
finally {
println("CLEANUP 11");
}
println("----------------J");
t=millis();
sum= 0;
for (a= 0; a < 100000; a++) {
sum += a;
}
println(sum, " loop: ", millis()-t);
t=millis();
sum= 0;
for (a= 0; a < 100000; a++) {
sum += a;
continue;
}
println(sum, " continue: ", millis()-t);
println("----------------K");
t=millis();
sum= 0;
for (a= 0; a < 100000; a++) {
try {
try {
try {
try {
try {
try {
try {
try {
try {
try {
sum += a;
// throw "oops";
}
}
}
}
}
}
}
}
}
}
}
println(sum, " tries: ", millis()-t);
t=millis();
sum= 0;
for (a= 0; a < 100000; a++) {
try {
try {
try {
try {
try {
try {
try {
try {
try {
try {
sum += a;
throw "oops";
}
}
}
}
}
}
}
}
}
}
catch (e) {}
}
println(sum, " throws: ", millis()-t);