1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179:
<?php
// このファイルの名前空間の定義
namespace SKJ;
// Extensionの有無で、読み込みクラス切り替え
if (extension_loaded('_AppException')) {
require_once('AppExceptionEnableExtension.txt');
} else {
require_once('AppExceptionDisableExtension.txt');
}
return;
// 以下はapigen、phpDocumentor用のダミーファイルです!!
// クラスの実態上記でrequireした、AppExceptionDisableExtension.txtもしくは
// AppExceptionEnableExtension.txtを参照してください
// 別名定義
use Exception;
/**
* アプリケーションレベルで発生する例外の基底となる例外
*
* アプリケーションレベルで発生した例外は全てこの例外を継承します
*
* ◆詳細◆
* <ul>
* <li>この例外を直接投げるようなことはしないで下さい</li>
* <li>この例外を継承した\SKJ\AppException\LogicException、\SKJ\AppException\RuntimeException、もしくはこの両例外を継承した更なる詳細例外を投げて下さい</li>
* </ul>
*
* @package SKJ\AppException
* @author y3high <y3public@49364.net>
* @copyright 2019 Seikouhou.
* @license https://opensource.org/licenses/MIT MIT
* @since Class available since Release 0.8.0
*/
class AppException extends Exception implements AppExceptionInterface
{
/**
* AppException 共通メソッドの取り込み
*/
use AppExceptionMethods;
/**
* 基底例外コードを算出するにあたってのファイルの最大行数
*
* @internal
*/
const MAX_LINE_IN_FILE = 999999;
/**
* 例外発生時のグローバル変数のスナップショットを撮りたい時に、コンストラクタの第4引数に指定する定数
*
* @api
*/
const OPT_GLOBAL_VARS_SNAPSHOT = 1;
/**
* 例外発生時のローカル変数のスナップショットを撮りたい時に、コンストラクタの第4引数に指定する定数
*
* @api
*/
const OPT_CALLER_VARS_SNAPSHOT = 2;
/**
* サブクラスにて初期値を上書きする
*
* @api
* @var string コンストラクタの引数<var>$message</var>が渡されなかった場合の既定の例外メッセージ
*/
protected $defMessage = '例外が発生しました';
/**
* サブクラスにて初期値を上書きする
*
* @api
* @var string コンストラクタの引数<var>$message</var>が配列で渡された場合にvsprintfに渡すフォーマット文字列
*/
protected $messageTemplate = '例外が%sで発生しました';
/**
* サブクラスにて初期値を上書きする
*
* @api
* @var int コンストラクタの引数<var>$code</var>が渡されなかった場合の既定の例外コード
*/
protected $defCode = 1000;
/**
* サブクラスにて初期値を上書きする
*
* @api
* @var mixed 補助的に使用される状態コード(デフォルトはself::<var>$defCode</var>と同じ)
*/
protected $statusCode = 1000;
/**
* サブクラスにて初期値を上書きする
*
* @api
* @var int このオブジェクトをイテレータとして扱った時に返す連結された例外のソート順
* @uses self::SORT_ORDER_DESC 初期値として使用
*/
protected $iteratorSortOrder = self::SORT_ORDER_DESC;
/**
* @api
* @var bool 例外発生時のグローバルスコープの変数情報を記録するかどうかの真偽値
*/
public static $enableGlobalVarsSnapShot = false;
/**
* @api
* @var bool 例外発生時のローカルスコープの変数情報を記録するかどうかの真偽値
*/
public static $enableCallerVarsSnapShot = false;
/**
* @internal
* @var array 例外発生時のグローバルスコープの変数情報
*/
protected $globalVarsSnapShot = [];
/**
* @internal
* @var array 例外発生時のローカルスコープの変数情報
*/
protected $callerVarsSnapShot = [];
/** @noinspection PhpMissingParentConstructorInspection */
/** @noinspection PhpUnusedParameterInspection */
/**
* コンストラクタ
*
* 例外の初期化処理
*
* ※このクラスを継承した子クラスに「initialize」メソッドが存在すれば呼ばれるが、その際に例外が投げられる可能性があるので注意する事(詳細は子クラスの「initialize」メソッドのDOCを確認)
*
* @api
* @param string|array|null $message 例外メッセージ、これを文字列ではなく配列として渡すと、<var>$messageTemplate</var>に設定されたフォーマット文字列と一緒にvsprintfへと渡され、その戻り値が例外メッセージとなります
* @param int|null $code 例外コード
* @param \Exception|null $previous 以前に使われた例外で、例外の連結に使用
* @param int|null $options 変数のスナップショットオプションを指定する
* @uses self::OPT_GLOBAL_VARS_SNAPSHOT グローバル変数のスナップショット取得時に<var>$options</var>へ指定
* @uses self::OPT_CALLER_VARS_SNAPSHOT ローカル変数のスナップショット取得時に<var>$options</var>へ指定
*/
public function __construct(
$message = null,
$code = null,
Exception $previous = null,
$options = null
){
}
/**
* 初期化処理
*
* 親クラスより呼ばれる初期化処理
*
* @internal
*/
protected function _initialize()
{
}
/**
* 例外発生時のグローバルスコープの変数情報を取得
*
* @api
* @return array グローバル変数情報
*/
public function getGlobalVars()
{
return [];
}
/**
* 例外発生時のローカルスコープの変数情報を取得
*
* @api
* @return array ローカル変数情報
*/
public function getCallerVars()
{
return [];
}
}