既存のエラー体系の収集
エラーに限らずステータスコードも集める。
検討のための参考情報であり、正確ではない。
原始的な boolean 値
成功失敗フラグ
table:success_fail
true 成功、success, succeeded
false 失敗、fail, failed
まず間違いようがない。
エラー有無フラグというパターンも考えられるが、ほぼ存在しない。
int 値によるエラー有無
様々なパターンがある。
大体の場合
負または-1の時にエラーとされる。
0または正の値の時に正常とされる。
-errno を返す事もある。(参考: systemd)
C言語の main 関数の返り値(または exit関数に渡す値)
#include <stdlib.h>
EXIT_SUCCESS 成功
EXIT_FAILURE 失敗
C言語の errno
#include <errno.h>
ISO C
int 型のグローバル変数(のように見える)であることが保証されている。
EDOM, EILSEQ, ERANGE のみが定義されている。(つまりそれ以外は全て実装依存になってしまう)
POSIX
Linux
POSIX 準拠
/usr/include/asm-generic/errno-base.h
/usr/include/asm-generic/errno.h
集めたもの
Java の例外
結果型方式
値かエラー情報かのどちらかを返す型
値の一部を流用するとか、別の返し口を作る(引数に返却用の参照を用意するとか)とかしなくてもよい。
Rust の Result<T, E>
Error で検索すると様々なエラー用の型が定義されている
Windows
Windows では複数種類のエラーコード体系がある。
システムエラーコード(Win32 API 関連で出てくる)
HRESULT
システムエラーコードを包含させることができる。
Office VBA
HTTPステータスコード
SMTPステータスコード
PostreSQL
SQLCODE
古いインターフェース
SQLSTATE
現在望ましいインターフェース
MySQL
Web API(HTTP)
エラーコードではなくエラーの表現方法の定義
関連