aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Execution
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2024-04-28 17:47:20 +0900
committernsfisis <nsfisis@gmail.com>2024-04-28 17:47:20 +0900
commit453f0a0d7346c16b327e39520374a555ecc8f2e4 (patch)
tree40048ed5b4d1f50cd6c54cd66b0664c7ae792bff /src/Execution
parent88a77bc5846541e5d6009bc103da378650a649f3 (diff)
downloadphp-waddiwasi-453f0a0d7346c16b327e39520374a555ecc8f2e4.tar.gz
php-waddiwasi-453f0a0d7346c16b327e39520374a555ecc8f2e4.tar.zst
php-waddiwasi-453f0a0d7346c16b327e39520374a555ecc8f2e4.zip
test: check trap error message
Diffstat (limited to 'src/Execution')
-rw-r--r--src/Execution/TrapException.php17
-rw-r--r--src/Execution/TrapKind.php11
2 files changed, 28 insertions, 0 deletions
diff --git a/src/Execution/TrapException.php b/src/Execution/TrapException.php
index 2948e8d..3e6a440 100644
--- a/src/Execution/TrapException.php
+++ b/src/Execution/TrapException.php
@@ -5,7 +5,24 @@ declare(strict_types=1);
namespace Nsfisis\Waddiwasi\Execution;
use RuntimeException;
+use Throwable;
class TrapException extends RuntimeException
{
+ private readonly TrapKind $trapKind;
+
+ public function __construct(
+ string $message = "",
+ int $code = 0,
+ ?Throwable $previous = null,
+ TrapKind $trapKind = TrapKind::Unknown,
+ ) {
+ parent::__construct($message, $code, $previous);
+ $this->trapKind = $trapKind;
+ }
+
+ public function getTrapKind(): TrapKind
+ {
+ return $this->trapKind;
+ }
}
diff --git a/src/Execution/TrapKind.php b/src/Execution/TrapKind.php
new file mode 100644
index 0000000..47c1c77
--- /dev/null
+++ b/src/Execution/TrapKind.php
@@ -0,0 +1,11 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Nsfisis\Waddiwasi\Execution;
+
+enum TrapKind
+{
+ case Unknown;
+ case OutOfBoundsMemoryAccess;
+}