目次 - API(機能別) - エラー処理 - SDL_GetError

SDL_GetError

現在のスレッドで最後に発生したエラーのメッセージを得る

構文

const char* SDL_GetError(void)

戻り値

発生したエラーの情報のメッセージを戻す. または, SDL_ClearError()を呼んでからエラーがなければ, 空の文字列を戻す. SDL_ClearError()を呼んだ場合を除けば, メッセージはSDL関数がエラーを報告した場合のみ変わる. SDL_GetError()を呼ぶかどうかは, SDL関数の戻り値を確認して決める必要がある.

サンプルコード

if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
    // 回復できないエラー. ここで終了処理を行う
    printf("SDL_Init 失敗: %s\n", SDL_GetError());
}

メモ: このサンプルではSDL_Init()を使っているが, SDL_GetError()はエラーの調査を助けるためにあらゆるSDLの操作の失敗でエラーメッセージを提供している. SDL関数のそれぞれの項目を参照すること.

詳細

SDL_GetError()を呼ぶ前に複数のエラーが発生する可能性がある. この場合, 最後のエラーメッセージのみ戻す.

このメッセージはSDL関数がエラーを発した場合のみ使用できる. SDL_GetError()を呼べるか否かは, SDL関数の戻り値をチェックする必要がある. エラーが発生したかを確認するためにSDL_GetError()の結果を利用すべきではない! SDLは正常を報告してもエラー文字列を設定する場合がある.

SDLはAPI呼び出しに成功してもエラー文字列を消去しない. エラー文字列を使う前に, 戻り値でエラーを確認する必要がある.

エラー文字列はスレッドごとに設定される. よって, 別のスレッドで発生したエラーは現在のスレッドでの操作には影響しない.

文字列は静的に確保されているので, アプリケーションは解放してはならない.

バージョン

SDL 2.0.0以降

関連項目(関数)

SDL_ClearError
SDL_SetError

SDL Wikiへのリンク

SDL_GetError - SDL Wiki