Рассматривать предупреждения как ошибки

Попробуйте заменить

.populate('tags').where('tags.tagName').in(['funny', 'politics']) 

на

.populate( 'tags', null, { tagName: { $in: ['funny', 'politics'] } } )
13
задан naivists 15 January 2010 в 11:20
поделиться

3 ответа

Смотрите пример #1 на http://www.php.net/manual/en/class.errorexception.php

<?php
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
}
set_error_handler("exception_error_handler");

/* Trigger exception */
strpos();
?>
22
ответ дан 1 December 2019 в 19:31
поделиться

Вы можете определить свой собственный обработчик ошибок с помощью функции set_error_handler()

В функции обработчика вы можете обрабатывать каждый класс ошибок как угодно. Вот основной шаблон, который я использую, в моем случае я хочу обрабатывать только фатальные ошибки, поэтому я игнорирую уведомления и предупреждения.

В вашем случае вы можете делать бэктрейк предупреждений, или регистрировать их как угодно

function error_handler($errno,$message,$file,$line,$context) {

switch($errno) {
    // ignore warnings and notices
    case E_WARNING:
    case E_NOTICE:
    case E_USER_NOTICE:
    case E_USER_WARNING:
        break;
    // log PHP and user errors
    case E_ERROR:
    case E_USER_ERROR:
              // Do some processing on fatal errors
    }
}
4
ответ дан 1 December 2019 в 19:31
поделиться

для положительного целочисленного деления

result = 0
while (result + result + result < input)
 result +=1
return result
-121--3428184-

Как насчет этого, в каком-то Python как псевдокод. Он делит ответ на целую часть и дробную часть. Если вы хотите преобразовать его в представление с плавающей точки, то я не уверен, что лучший способ сделать это.

 x = <a number>  
 total = x
 intpart = 0
 fracpart = 0

 % Find the integer part
 while total >= 3
    total = total - 3
    intpart = intpart + 1

 % Fraction is what remains
 fracpart = total


 print "%d / 3 = %d + %d/3" % (x, intpart, fracpart)

Обратите внимание, что это не будет работать для отрицательных чисел. Чтобы исправить это, необходимо изменить алгоритм:

  total = abs(x)
  is_neg = abs(x) != x

  ....

  if is_neg
      print "%d / 3 = -(%d + %d/3)" % (x, intpart, fracpart)
-121--3428185-

Посмотрите на набор _ error _ handler () и включите его в начало сценариев или в bootstrap, чтобы просто напечатать трассировку стека, когда E_WARNINGs произойдут.

function stacktrace_error_handler($errno,$message,$file,$line,$context)
{
    if($errno === E_WARNING) {
        debug_print_backtrace();
    }
    return false; // to execute the regular error handler
}
set_error_handler("stacktrace_error_handler");

Для улучшения контроля над различными типами, посмотрите на более явную версию, размещенную в других ответах.

9
ответ дан 1 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: