Да ну.
PHP:
$tmp_file = make_tmp_file();
try {
// do stuff..
} catch (Exception $e) {}
unlink($tmp_file);
аа сообразил
PHP:
// повторный выброс исключения
throw $e;
Последнее редактирование:
Да ну.
$tmp_file = make_tmp_file();
try {
// do stuff..
} catch (Exception $e) {}
unlink($tmp_file);
// повторный выброс исключения
throw $e;
Всё получается с точностью до наоборот.
Скажем, в С++ можно захватить ресурс инициализацией и освободить в деструкторе (это даже предпочтительно). А в Java/PHP так сделать нельзя.
Сомнительно, что нагружение сборщика мусора отыскиванием автоматических объектов лучше блока finaly.
А кто не позволяет забыть убрать где-то ссылку на объект?Утечки памяти возникают при работе со ссылками или указателями, а не с объектами.
Мечты-мечты.hell0w0rd, объекты гарантированно уничтожаются ровно в тот момент, когда выходят из области видимости.
Это называется автоматической памятью.
Конечно будет отлавливать первый подходящий. читай в доке пример #3 http://www.php.net/manual/ru/language.exceptions.phpКод:ErrorException extends Exception {
p.s. Решил обновить знания и слазить в мануал, понял что finally до сих пор ни разу не использовал, хотя знаю о нём.PHP:class MyException extends Exception { } class Test { public function testing() { try { try { throw new MyException('foo!'); } catch (MyException $e) { // повторный выброс исключения throw $e; } } catch (Exception $e) { var_dump($e->getMessage()); } } } $foo = new Test; $foo->testing();
$r = '';
try {
try {
throw new Exception();
} catch (ErrorException $ex) {
$r .= 'ErrorException';
}
}
catch (Exception $ex) {
$r .= 'Exception';
}
var_dump($r); // string(9) "Exception"
Все объекты в PHP - это (сюрприз!) указатели. Читаем мануал. Потом задаём вопросы.hell0w0rd, объекты гарантированно уничтожаются ровно в тот момент, когда выходят из области видимости.
Это называется автоматической памятью.
Утечки памяти и висячие адреса возникают при работе с указателями, а не с объектами.
Ты тупой или троллишь?Все объекты в PHP - это (сюрприз!) указатели. Читаем мануал. Потом задаём вопросы.
Он не троллит.Ты тупой или троллишь?