চেষ্টা / ধরুন / অবশেষে
একটি try ব্লকে এমন কোড থাকে যা throw করতে পারে। trailing catch (<name>) { ... } throw করা মান পায়। ঐচ্ছিক finally { ... } ব্লক চলে — try সফল হোক বা throw করুক — cleanup-এর জন্য উপযোগী। বাংলা রূপ চেষ্টা / ধরুন / অবশেষে সমার্থক।
সিনট্যাক্স
try {
// throw করতে পারে এমন কোড
} catch (<name>) {
// try থ্রো করলে শুধু চলে; <name> থ্রো করা মান বাইন্ড করে
} finally {
// উভয় ক্ষেত্রে চলে (ঐচ্ছিক)
}
catch আবশ্যক; finally ঐচ্ছিক।
উদাহরণ
function divide(a, b) {
if (b == 0) { throw "divide by zero"; }
return a / b;
}
try {
var result = divide(10, 0);
print(result);
} catch (e) {
print("caught:", e);
} finally {
print("done");
}
// আউটপুট:
// caught: divide by zero
// done
finally দিয়ে cleanup
finally রিসোর্স cleanup-এর সঠিক জায়গা যাতে এটি সবসময় চলে:
import "io" as io;
var f = io.open_read("notes.txt");
try {
f.read(64, function (err, chunk) { /* ... */ });
} catch (e) {
print("read failed:", e);
} finally {
f.close();
}
নির্দিষ্ট shape catch
catch parameter একটি সাধারণ মান — branch করতে inspect করুন:
try {
do_work();
} catch (e) {
if (type(e) == "map" and e.code != null) {
print("error code:", e.code, "-", e.message);
} else {
print("unexpected error:", e);
}
}
Rethrowing
catch-এর ভেতর থেকে catch করা মান (অথবা নতুন) re-throw করতে পারেন:
try {
risky();
} catch (e) {
print("logging error:", e);
throw e; // bubble up
}
বাংলা রূপ
চেষ্টা {
var result = divide(10, 0);
} ধরুন (e) {
print("caught:", e);
} অবশেষে {
print("done");
}
আরও দেখুন
throw— একটি এরর রেইজ।