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- エラーに関連する領域/モジュール。例えば、Core 、Platform 、またはCustom 。errorString-error code 定数を記述する文字列(ただし、QulError_接頭辞なし)。リリースビルドでは空になる。errorCode-QulError の数値。lineNumber- エラーが発生した行番号。param1param2、および - エラーに関する追加情報を提供する整数値。param3
デフォルトのハンドラは、エラー・メッセージを表示した後にプログラムを停止し、デバッグ用にバックトレースを保存するために無限ループに入ります。
QulError は、Qt Quick Ultraliteによって報告されたエラーコードのリストを提供します。
注意: エラーコードのいくつかはデバッグビルドでのみ利用可能です。すべてのエラーチェックを有効にするには、Qt Quick Ultralite CoreとPlatformをデバッグビルド設定で再構築する必要があります。
カスタムエラーの報告
エラーはQul::PlatformInterface::error で報告されます。アサーション文はQUL_ASSERT で実行され、式が偽と評価された場合にQul::PlatformInterface::error を呼び出します。
Qt Quick Ultralite はCore とPlatform の範囲のエラーコード値を予約します。カスタムエラーコードは値QulError_Custom + 1 から始まります。
enum CustomErrorCodes { CustomError_Foo = QulError_Custom + 1, CustomError_Bar };
オプションの情報は、整数パラメータparam1 、param2 、param3 で提供できます。以下の例では、someValue が 5 より大きいことをテストしています。アサートが失敗した場合は、param1 を使用してsomeValue の実際の値を表示します。
uint8_t someValue = 6; QUL_ASSERT(someValue > 5, static_cast<QulError>(CustomError_Bar), someValue);
カスタム・エラー・ハンドラの設定
カスタム・エラー・ハンドラはQul::setErrorHandler で設定します。
特定の Qt ライセンスの下で利用可能です。
詳細はこちら。