<?php
declare(strict_types=1);
final class Custom extends \RuntimeException
{
public static int $counter = 0;
private function __construct(string $reason)
{
parent::__construct($reason);
++self::$counter;
}
public static function reason(string $reason): self
{
return new self($reason);
}
}
printf("%d\n", Custom::$counter);
assert(true === true, Custom::reason("Should never fail"));
printf("%d (if increased, pointless throwable instantiation)\n", Custom::$counter);
try {
assert(true === false, Custom::reason("Should always fail"));
} catch (\Throwable $t) {
printf("%d (if increased, expected throwable instantiation) <%s>\n", Custom::$counter, $t->getMessage());
}
printf("%d\n", Custom::$counter);
- Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- 0
1 (if increased, pointless throwable instantiation)
2 (if increased, expected throwable instantiation) <Should always fail>
2
preferences:
99.87 ms | 402 KiB | 89 Q