Ben bir genel uygulama dışında herhangi bir PHP hataları açmak için bir özel hata işleyicisi kullanılan son zamanlarda bazı kod geldi. Bir özel durum işleyici de belirli bir hata kodu aralığında ise durum oturum olacağı belirlenmiştir. Örnek:
class AppException extends Exception
{
}
function error_handler($errno, $errstr, $errfile, $errline)
{
throw new AppException($errstr, $errno);
}
function exception_handler($exception)
{
$min = ...;
$max = ...;
if ($exception->getCode() >= $min && $exception->getCode() <= $max)
{
// log exception
}
}
set_error_handler('error_handler');
set_exception_handler('exception_handler');
$a[1]; // throws exception
Sorun gibi şeyler gördüm ki:
try
{
do_something();
}
catch (AppException $exception)
{
}
Hangi gerçek programlama hataları ve "Olağanüstü" davranış arasında hiçbir ayrım olduğunu ima eder. Ayrıca kazma üzerine, ben PHP gibi hataları "Olağanüstü" davranışı temsil ettiği fikri etrafında tasarlanmış kod parçaları geldi:
...
function my_function($param1, $param2)
{
// do something great
}
try
{
my_function('only_one_param');
}
catch (AppException $exception)
{
}
Hangi obfuscating hataları ve uygulamanın arayüzü tasarımı biter.
Hataları bu şekilde kullanımı ile ilgili düşünceniz nedir? Bu istisnalar içine PHP'nin hataları dönüm değer mi? Eğer bir kod temeli bu fikir etrafında tasarlanmış yere yukarıdaki gibi durumlarda ne yaparsınız?