くいなちゃん2020年07月07日


プログラミング言語Kuin」の言語仕様14、例外コードについてです。

1Kuin例外コード

Kuinで使われる例外コードは表1-1の通りです。
表1-1: Kuin例外コード
例外コード 定数 説明
0x00000001

0x0000FFFF
excpt@userMin

excpt@userMax
ユーザが自由に使える例外コード
0xC0000005 excpt@accessViolation 不正なメモリアクセス(主にnullインスタンスを参照すると発生)
0xC0000017 excpt@noMem メモリ不足
0xC0000094 excpt@intDivideByZero intなどの整数型で0で除算すると発生。 floatでは発生しない
0xC00000FD excpt@stackOverflow スタックオーバーフロー(主に無限に再帰呼び出しすると発生)
0xC000013A excpt@ctrlCExit コンソールアプリにおいてユーザがCtrl+Cで終了しようとすると発生
0xE9170000 excpt@dbgAssertFailed assert文の条件式がfalseになると発生(デバッグモードのみ)
0xE9170001 excpt@classCastFailed キャストできないクラスにキャストすると発生
0xE9170002 excpt@dbgArrayIdxOutOfRange 配列の範囲外にアクセスすると発生(デバッグモードのみ)
0xE9170004 excpt@invalidCmp cmpメソッドを継承していないクラスを比較すると発生
0xE9170006 excpt@dbgArgOutDomain 関数に渡す引数が定義域の範囲外(デバッグモードのみ)
0xE9170008 excpt@invalidDataFmt 読み込んだファイルやデータの形式が不正
0xE9170009 excpt@deviceInitFailed デバイスやウインドウ等の初期化に失敗
0xE917000A excpt@dbgInoperableState 該当の操作が行える状態になっていない(デバッグモードのみ)
excpt.knに上記の定数が定義されています。
0xE9170009(excpt@deviceInitFailed)などの対処が困難な例外は、無理に対処せずにそのまま終了させるのも一つです。
1594114551jaf