Непонятная ошибка

Leonas

Создатель
Регистрация
22 Сен 2010
Сообщения
23
Реакции
0
Есть система построенная на обьектах, развитвленная структура. главный обьект создает в нутри себя обьекты поменьше и управляет ими. код работает нормально, выдает все что нужно, но в самом низу страницы появляется надоедливое сообщение об ошибке
"Fatal error: Exception thrown without a stack frame in Unknown on line 0"
какая линия "0"? такого кабы нету. что искать, почему выдается данная ошибка?
немогу понять откуда и почему может возникнуть данная ошибка?
 
ищи в callback фунциях, деструткторах классов и в функциях зарегистрированых с помощью register_shutdown_function
 
Да, в некоторых классах используются диструкторы, но в них ошибок нет. callback, register_shutdown_function неиспользуются.
 
ставь брейкпоинты и делай трассировку, экстрасенсы бесплатно не работают ;)
 
если деструкторов не много, поочереди убирай, и смотри когда пропадет ошибка, если не поможет - делай как написал saen
 
PHP:
set_error_handler('Errorhandler'); 
set_exception_handler('Errorhandler');

function Errorhandler($type,$err,$file,$line)
{
 в функцию передадутся
 $type- тип ошибки (код)
 $err - сообщение 
 $file - файл с ошибкой
 $line - строка в файле 
 
}
Я эти данныепишу в лог, после можно просмотреть. Сюда попадут все Warning Exceptiоn и Error
 
PHP:
set_error_handler('Errorhandler'); 
set_exception_handler('Errorhandler');
function Errorhandler($type,$err,$file,$line)
{
 в функцию передадутся
 $type- тип ошибки (код)
 $err - сообщение 
 $file - файл с ошибкой
 $line - строка в файле 
}
Я эти данныепишу в лог, после можно просмотреть. Сюда попадут все Warning Exceptiоn и Error
какая разница куда выводить ошибку, если обработчик ошибок не видит где произошла ошибка? В функцию передастся тоже самое. Темболее там Fatal error ошибка.
 
в самом низу страницы появляется надоедливое сообщение об ошибке
"Fatal error: Exception thrown without a stack frame in Unknown on line 0"
Есть ли кеширование в файл? Если да, то достаточно ли прав для записи кеш-файла?
 
Есть ли кеширование в файл? Если да, то достаточно ли прав для записи кеш-файла?
причем тут кеш вообще? или ты не умеешь гуглить дальше первой позиции в выдаче?:D
 
Вобщем ошибку я нашел, спосибо за подсказки.
непонятна природа возникновения такой ошибки.
вот код:

PHP:
<?php
header('Content-Type: text/html; charset=utf-8');
error_reporting(E_ALL);

class my1 {
    
  public function add() {
    $this->f1 = isset($this->f1) ?  $this->f1+1 : 1;
  }
  
  public function __destruct() {
    if (isset($this->f1)) 
      throw new Exception('переменная иниацилизированна');//тут причина
  }
  
}

class my2 {
  public function __construct() {
    $this->my1 = new my1();
  }
  
  public function printt() {
    $this->my1->add();
    echo @$this->my1->f1;
  }
}


try {
  
  $c = new my2();
  $c->printt();
}
catch (Exception $e) {
  echo $e->getMessage();
}
  
exit;

если логически рассудить то в коде нет ошибок, код отрабатывает как нада, почему вызов генерации исключения выдает ошибку? (прошу сильно непинать, непонятна суть ошибки, код составил специально чтобы показать возникновение моей ошибки)
 
Назад
Сверху