WikiChree.COM 新規   編集   添付   管理  



トップ   編集 編集〔GUI〕 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS   ログイン

Pkript/文法/エラー処理 の変更点

#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);
}
}}