Inherited from v1.0.0

চেষ্টা / ধরুন / অবশেষে

একটি 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 — একটি এরর রেইজ।