Esempio n. 1
0
 /**
  * Override WikiaException report() and write exceptions to error_log
  */
 function report()
 {
     // Display normal mediawiki error page for mediawiki exceptions
     if ($this->_original instanceof MWException) {
         $this->_original->report();
     } else {
         WikiaLogger::instance()->error(__CLASS__, ['err' => $this->getMessage(), 'exception' => $this->getOriginal()]);
     }
 }
 /**
  * Override WikiaException report() and write exceptions to error_log
  */
 function report()
 {
     global $wgRequest;
     $info = '';
     if (!empty($this->_original)) {
         $file = $this->_original->getFile();
         $line = $this->_original->getLine();
         $message = $this->_original->getMessage();
         $info = "exception has occurred at line {$line} of {$file}: {$message}";
     } else {
         $info = "unknown exception has occurred";
     }
     $url = '[no URL]';
     if (isset($wgRequest)) {
         $url = $wgRequest->getFullRequestURL();
     }
     // Display normal mediawiki eror page for mediawiki exceptions
     if ($this->_original instanceof MWException) {
         $this->_original->report();
     } else {
         trigger_error("[REPORT: {$this->getMessage()}] WikiaDispatcher reports an {$info}  (URL: {$url}) [REPORT: End]", E_USER_ERROR);
     }
 }
Esempio n. 3
0
 /**
  * Report an exception to the user
  * @param Exception|Throwable $e
  */
 protected static function report($e)
 {
     try {
         // Try and show the exception prettily, with the normal skin infrastructure
         if ($e instanceof MWException) {
             // Delegate to MWException until all subclasses are handled by
             // MWExceptionRenderer and MWException::report() has been
             // removed.
             $e->report();
         } else {
             MWExceptionRenderer::output($e, MWExceptionRenderer::AS_PRETTY);
         }
     } catch (Exception $e2) {
         // Exception occurred from within exception handler
         // Show a simpler message for the original exception,
         // don't try to invoke report()
         MWExceptionRenderer::output($e, MWExceptionRenderer::AS_RAW, $e2);
     }
 }
Esempio n. 4
0
 /**
  * Report an exception to the user
  * @param Exception $e
  */
 protected static function report(Exception $e)
 {
     global $wgShowExceptionDetails;
     $cmdLine = MWException::isCommandLine();
     if ($e instanceof MWException) {
         try {
             // Try and show the exception prettily, with the normal skin infrastructure
             $e->report();
         } catch (Exception $e2) {
             // Exception occurred from within exception handler
             // Show a simpler message for the original exception,
             // don't try to invoke report()
             $message = "MediaWiki internal error.\n\n";
             if ($wgShowExceptionDetails) {
                 $message .= 'Original exception: ' . self::getLogMessage($e) . "\nBacktrace:\n" . self::getRedactedTraceAsString($e) . "\n\nException caught inside exception handler: " . self::getLogMessage($e2) . "\nBacktrace:\n" . self::getRedactedTraceAsString($e2);
             } else {
                 $message .= "Exception caught inside exception handler.\n\n" . "Set \$wgShowExceptionDetails = true; at the bottom of LocalSettings.php " . "to show detailed debugging information.";
             }
             $message .= "\n";
             if ($cmdLine) {
                 self::printError($message);
             } else {
                 echo nl2br(htmlspecialchars($message)) . "\n";
             }
         }
     } else {
         $message = "Exception encountered, of type \"" . get_class($e) . "\"";
         if ($wgShowExceptionDetails) {
             $message .= "\n" . MWExceptionHandler::getLogMessage($e) . "\nBacktrace:\n" . self::getRedactedTraceAsString($e) . "\n";
         }
         if ($cmdLine) {
             self::printError($message);
         } else {
             echo nl2br(htmlspecialchars($message)) . "\n";
         }
     }
 }
Esempio n. 5
0
 /**
  * Report an exception to the user
  */
 protected static function report(Exception $e)
 {
     global $wgShowExceptionDetails;
     $cmdLine = MWException::isCommandLine();
     if ($e instanceof MWException) {
         try {
             // Try and show the exception prettily, with the normal skin infrastructure
             $e->report();
         } catch (Exception $e2) {
             // Exception occurred from within exception handler
             // Show a simpler error message for the original exception,
             // don't try to invoke report()
             $message = "MediaWiki internal error.\n\n";
             if ($wgShowExceptionDetails) {
                 $message .= 'Original exception: ' . $e->__toString() . "\n\n" . 'Exception caught inside exception handler: ' . $e2->__toString();
             } else {
                 $message .= "Exception caught inside exception handler.\n\n" . "Set \$wgShowExceptionDetails = true; at the bottom of LocalSettings.php " . "to show detailed debugging information.";
             }
             $message .= "\n";
             if ($cmdLine) {
                 self::printError($message);
             } else {
                 self::escapeEchoAndDie($message);
             }
         }
     } else {
         $message = "Unexpected non-MediaWiki exception encountered, of type \"" . get_class($e) . "\"\n" . $e->__toString() . "\n";
         if ($wgShowExceptionDetails) {
             $message .= "\n" . $e->getTraceAsString() . "\n";
         }
         if ($cmdLine) {
             self::printError($message);
         } else {
             self::escapeEchoAndDie($message);
         }
     }
 }
Esempio n. 6
0
/**
 * Report an exception to the user
 */
function wfReportException(Exception $e)
{
    if ($e instanceof MWException) {
        try {
            $e->report();
        } catch (Exception $e2) {
            // Exception occurred from within exception handler
            // Show a simpler error message for the original exception,
            // don't try to invoke report()
            $message = "MediaWiki internal error.\n\n" . "Original exception: " . $e->__toString() . "\n\nException caught inside exception handler: " . $e2->__toString() . "\n";
            if (!empty($GLOBALS['wgCommandLineMode'])) {
                echo $message;
            } else {
                echo nl2br(htmlspecialchars($message)) . "\n";
            }
        }
    } else {
        echo $e->__toString();
    }
}
Esempio n. 7
0
/**
 * Report an exception to the user
 */
function wfReportException(Exception $e)
{
    global $wgShowExceptionDetails;
    $cmdLine = MWException::isCommandLine();
    if ($e instanceof MWException) {
        try {
            $e->report();
        } catch (Exception $e2) {
            // Exception occurred from within exception handler
            // Show a simpler error message for the original exception,
            // don't try to invoke report()
            $message = "MediaWiki internal error.\n\n";
            if ($wgShowExceptionDetails) {
                $message .= 'Original exception: ' . $e->__toString() . "\n\n" . 'Exception caught inside exception handler: ' . $e2->__toString();
            } else {
                $message .= "Exception caught inside exception handler.\n\n" . "Set \$wgShowExceptionDetails = true; at the bottom of LocalSettings.php " . "to show detailed debugging information.";
            }
            $message .= "\n";
            if ($cmdLine) {
                wfPrintError($message);
            } else {
                echo nl2br(htmlspecialchars($message)) . "\n";
            }
        }
    } else {
        $message = "Unexpected non-MediaWiki exception encountered, of type \"" . get_class($e) . "\"\n" . $e->__toString() . "\n";
        if ($wgShowExceptionDetails) {
            $message .= "\n" . $e->getTraceAsString() . "\n";
        }
        if ($cmdLine) {
            wfPrintError($message);
        } else {
            echo nl2br(htmlspecialchars($message)) . "\n";
        }
    }
}
Esempio n. 8
0
/**
 * Report an exception to the user
 */
function wfReportException(Exception $e)
{
    $cmdLine = MWException::isCommandLine();
    if ($e instanceof MWException) {
        try {
            $e->report();
        } catch (Exception $e2) {
            // Exception occurred from within exception handler
            // Show a simpler error message for the original exception,
            // don't try to invoke report()
            $message = "MediaWiki internal error.\n\n";
            if ($GLOBALS['wgShowExceptionDetails']) {
                $message .= "Original exception: " . $e->__toString();
            }
            $message .= "\n\nException caught inside exception handler";
            if ($GLOBALS['wgShowExceptionDetails']) {
                $message .= ": " . $e2->__toString();
            }
            $message .= "\n";
            if ($cmdLine) {
                wfPrintError($message);
            } else {
                echo nl2br(htmlspecialchars($message)) . "\n";
            }
        }
    } else {
        $message = "Unexpected non-MediaWiki exception encountered, of type \"" . get_class($e) . "\"\n" . $e->__toString() . "\n";
        if ($GLOBALS['wgShowExceptionDetails']) {
            $message .= "\n" . $e->getTraceAsString() . "\n";
        }
        if ($cmdLine) {
            wfPrintError($message);
        } else {
            echo nl2br(htmlspecialchars($message)) . "\n";
        }
    }
}