例外処理
Version 0.76より、例外処理をサポートしました。
例外処理構文
try {
// 例外が発生する可能性のある文
} catch {
// 例外が発生した場合
} finally {
// 事後処理
}
finallyブロック内に書かれた文は、例外の発生/未発生に関わらず必ず実行されます。
任意の位置で例外を発生させたい場合は、throwが利用できます。
catchブロック内では、例外発生コードが$exceptionに入っています。
# 例外利用の例 // 例外コードの定義 #define MGSERR_USER MGSERR_USERDEFINED+1 function exception_test(){ try { // わざと例外を発生させる log::write("%d"); } catch { println("例外発生。例外コード[" . $exception . "]"); } finally { println("最終処理。"); } //例外を発生させる throw MGSERR_USER; } try { exception_test(); } catch { println("関数の例外発生。例外コード[" . $exception . "]"); } finally { println("関数呼出し後最終処理。"); } println("完了。");
