このページでは

C

エラー処理

Qt Quick Ultralite ライブラリで発生した致命的なエラーは、アプリケーションコード内で実装可能な API を通じて報告されます。この API を使用すると、カスタムログメッセージを書き込んだり、エラーイベントを保存したりすることができます。実装側はもはや GUI とやり取りすることはできず、最終的にはデバイスを再起動するか、それに相当する処理を行うことが想定されています。

警告: ソフトウェアスタック全体がすでに無効な状態にあるため、エラーハンドラ決して戻ってはなりません。

Qt Quick Ultraliteライブラリは、アプリケーション側で実装が提供されていない場合に使用されるデフォルトの実装を提供しています。

デフォルトのエラーハンドラは、以下の形式でQul::Platform::PlatformContext::consoleWrite にエラーレポートを出力します:

Qt for MCUs error: <errorRange>:<errorString>:<errorCode>, line: <lineNumber>, params: <param1>, <param2>, <param3>.
  • errorRange - エラーに関連する領域/モジュール。例:CorePlatform 、またはCustom
  • errorString - `error code ` 定数を表す文字列(ただし、`QulError_ ` という接頭辞は含まれません)。リリースビルドでは空になります。
  • errorCode -QulError の数値。
  • lineNumber - エラーが発生した行番号。
  • param1,param2 、およびparam3 - エラーに関する追加情報を提供する整数値。

デフォルトのハンドラは、エラーメッセージを出力した後、プログラムを停止し、デバッグ用のバックトレースを保存するために無限ループに入ります。

QulError Qt Quick Ultralite によって報告されるエラーコードの一覧を提供します。

注:一部 のエラーコードは、デバッグビルドでのみ利用可能です。すべてのエラーチェックを有効にするには、Qt Quick Ultralite Core および Platform をデバッグビルド構成で再ビルドする必要があります。

カスタムエラーの報告

Qul::PlatformInterface::error を使用してエラーが報告されます。アサーション文は `QUL_ASSERT ` を使用して行われ、式が `false` と評価された場合は `Qul::PlatformInterface::error ` が呼び出されます。

Qt Quick Ultraliteは、Core およびPlatform の範囲のエラーコード値を予約しています。カスタムエラーコードはQulError_Custom + 1 から始まります。

enum CustomErrorCodes { CustomError_Foo = QulError_Custom + 1, CustomError_Bar };

オプション情報は、整数パラメータparam1param2 、およびparam3 を使用して指定できます。次の例は、someValue が 5 より大きいかどうかをテストします。アサートが失敗した場合、someValue の実際の値がparam1 を通じて表示されます。

uint8_t someValue = 6;
QUL_ASSERT(someValue > 5, static_cast<QulError>(CustomError_Bar), someValue);

カスタムエラーハンドラの設定

カスタムエラーハンドラは、Qul::setErrorHandler で設定します。

特定のQtライセンスの下で利用可能です。
詳細はこちらをご覧ください。