エラーとトラブルシューティング
本書は実験的プレリリース v0.0.18 の確定した範囲を説明します。実際の公開状況とダウンロードは GitHub Releases を確認してください。実験的開発中はコンパイラー診断が変わることがあります。問題を報告するときは、CLI のバージョン、Git コミット、バックエンド、完全なコマンド、最小のソースを添えてください。
Ku 実行ファイルを確認する
「Ku 実行ファイルを確認する」という見出しのセクションku --versionku -hku check hello.kuku が見つからない場合は、展開先ディレクトリから実行ファイルを呼び出してください。Windows では ku.exe を使用します。既定のビルドで Rust やリンク用ライブラリが不足する場合は、インストール要件を確認し、CLI だけをコピーせず、アーカイブ全体の配置を維持してください。
診断を読む
「診断を読む」という見出しのセクション通常のチェックは、ファイル、ソース位置、該当箇所、利用可能な修正案を表示します。ツール連携には次の形式が使用できます:
ku check --json hello.ku出力は JSON Lines で、1 行につき 1 件の診断です。フィールドには level、code、message、file、line、column、endLine、endColumn、notes、helps があります。成功時は何も出力しません。JSON 出力がないことは、チェックが実行されなかったことを意味しません。
| 診断 | よくある原因 | 対処 |
|---|---|---|
E0105 |
let を使用している |
最初の代入で変数を宣言する |
E0302 |
if / while の条件が bool ではない |
明示的な真偽値の比較を書く |
E0601 |
不明な標準ライブラリモジュール | std.json など、実際のモジュールパスを確認する |
E0605 |
必須の明示的インポートがない | import fs from "std.fs" などでモジュールをインポートする |
E0901 |
ムーブ済みの値を読んでいる | 独立した値を明示的にクローンするか、対応する同期借用を使用する |
E0913 |
非同期パラメーターを借用している | 所有パラメーターを使い、元の値が必要なら呼び出し側でクローンする |
E0918 |
呼び出し側で &value と書いている |
通常の引数を渡す。借用はシグネチャで宣言する |
これは登録済み診断の概要であり、すべてのエラーの一覧ではありません。現在の正式な登録情報は src/error.rs にあります。
実行時エラーには別の仕様がある
「実行時エラーには別の仕様がある」という見出しのセクション実行時 Error の domain/code 値は、コンパイラーの E コードとは別です。不正な JSON は json/parse_error、存在しないオブジェクトキーは object/missing_key を返すことがあります。失敗する可能性のある呼び出しには ? を付けるか、try/catch でフィールドを読みます。
import json from "std.json"
fn main() { try { json.parse("[1,]")? } catch (error) { println(error.domain) println(error.code) println(error.message) }}この学習用プログラムは、意図的に回復可能な解析エラーを起こします。報告される byte N は、0 始まりの UTF-8 バイトオフセットです。中国語や絵文字を含む場合の文字数ではありません。
ネイティブビルドが拒否される
「ネイティブビルドが拒否される」という見出しのセクションku check の成功が示すのはフロントエンドのチェック成功だけです。ネイティブ C と LLVM にはそれぞれ機能上の制約があります。構文が明示的に拒否された場合は、対応表を確認してください。タイムアウトを延長したり、別のバックエンドで成功したりしても、未対応の経路の検証にはなりません。
-o なしの ku build --native file.ku は C だけを書き出します。実行ファイルをコンパイルおよびリンクするには、ku build --backend c file.ku を使用し、ターゲット用 C ツールチェーンをインストールしてください。
データベースエラー execution_unknown と execution_completed_without_result を理由に自動再実行してはいけません。リクエストと業務上の証拠を保管し、まず実際の実行状態を確認してください。ローカルのウェブサイトの検証に本番データベースへの接続は不要です。
詳しくはリポジトリの診断ガイドを参照してください。