#author("2026-08-31T22:16:56+09:00","default:guide","guide") * Pkript/文法/エラー処理 [#k394aa74] #author("2026-09-04T00:05:58+09:00","default:mcp","bot-mcp") * Pkript/文法/エラー処理 [#a07718aa] try / catch による例外捕捉とリソース上限エラーの扱い。 ** リファレンス [#v728ab01] ** リファレンス [#lc53edaf] *** try / catch 構文 [#x15cdaf9] *** 構文 [#l0dfbd9d] #pkript(highlight){{ #highlight{{ try { // 処理 } catch (err) { // err.message にエラー内容が格納される // err.message にエラー内容と発生位置が格納される } }} - catch ブロックの変数名は省略可能: catch { ... } - throw および finally はサポートされていない - catch ブロックの変数名は省略できる(catch { ... }) - return / break / continue は try を素通りする - throw および finally はサポートしていない *** catch できないエラー [#ke96ce1e] *** catch できないエラー [#dacf7c6d] リソース制限違反によるエラーは catch を素通りし、スクリプト全体の実行を停止する。 - 実行時間制限(PKRIPT_MAX_TIME) - ステップ数制限(PKRIPT_MAX_STEPS) - メモリ使用量制限(PKRIPT_MAX_MEMORY) - 再帰・ループ回数上限 - 正規表現バックトラック上限 |~上限|~定数|h |実行時間|PKRIPT_MAX_TIME| |ステップ数|PKRIPT_MAX_STEPS| |メモリ使用量|PKRIPT_MAX_MEMORY| |再帰深度とループ回数|PKRIPT_MAX_DEPTH / PKRIPT_MAX_LOOP| |文字列長と配列要素数|PKRIPT_MAX_STRING / PKRIPT_MAX_ARRAY| |ページ参照と書き込み回数|PKRIPT_MAX_READS / PKRIPT_MAX_WRITES| |wiki.convert の呼び出し回数|PKRIPT_MAX_CONVERT| |正規表現バックトラック量|PKRIPT_REGEX_BACKTRACK| ** 使用法 [#i0e4f5f4] ** 使用法 [#v43a5634] *** JSONのパースエラーを安全に処理する [#p2f16a06] *** JSONのパースエラーを安全に処理する [#try_usage_json] #pkript(highlight){{ #highlight{{ let config = {}; try { config = JSON.parse(wiki.source("ConfigPage")); } catch (e) { console.warn("設定のパースに失敗しました:", e.message); } }}