mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-23 00:55:57 +00:00
Improved exception handling and trace creation
This commit is contained in:
parent
7be4e2fa81
commit
3128ae9736
@ -1990,6 +1990,10 @@ class Server{
|
||||
|
||||
global $lastError;
|
||||
|
||||
if($trace === null){
|
||||
$trace = $e->getTrace();
|
||||
}
|
||||
|
||||
$errstr = $e->getMessage();
|
||||
$errfile = $e->getFile();
|
||||
$errno = $e->getCode();
|
||||
@ -2012,7 +2016,7 @@ class Server{
|
||||
"fullFile" => $e->getFile(),
|
||||
"file" => $errfile,
|
||||
"line" => $errline,
|
||||
"trace" => @getTrace($trace === null ? 3 : 0, $trace)
|
||||
"trace" => @getTrace(1, $trace)
|
||||
];
|
||||
|
||||
global $lastExceptionError, $lastError;
|
||||
@ -2097,7 +2101,7 @@ class Server{
|
||||
$level->doTick($currentTick);
|
||||
}catch(\Exception $e){
|
||||
$this->logger->critical("Could not tick level " . $level->getName() . ": " . $e->getMessage());
|
||||
if($this->logger instanceof MainLogger){
|
||||
if(\pocketmine\DEBUG > 1 and $this->logger instanceof MainLogger){
|
||||
$this->logger->logException($e);
|
||||
}
|
||||
}
|
||||
|
@ -103,6 +103,9 @@ class MainLogger extends \AttachableThreadedLogger{
|
||||
}
|
||||
|
||||
public function logException(\Exception $e, $trace = null){
|
||||
if($trace === null){
|
||||
$trace = $e->getTrace();
|
||||
}
|
||||
$errstr = $e->getMessage();
|
||||
$errfile = $e->getFile();
|
||||
$errno = $e->getCode();
|
||||
@ -137,8 +140,7 @@ class MainLogger extends \AttachableThreadedLogger{
|
||||
}
|
||||
$errfile = \pocketmine\cleanPath($errfile);
|
||||
$this->log($type, get_class($e) . ": \"$errstr\" ($errno) in \"$errfile\" at line $errline");
|
||||
|
||||
foreach(($trace = @\pocketmine\getTrace($trace === null ? 4 : 0, $trace)) as $i => $line){
|
||||
foreach(@\pocketmine\getTrace(1, $trace) as $i => $line){
|
||||
$this->debug($line);
|
||||
}
|
||||
}
|
||||
|
@ -38,9 +38,9 @@ class VersionString{
|
||||
$this->generation = ($version >> 9) & 0x0F;
|
||||
}else{
|
||||
$version = preg_split("/([A-Za-z]*)[ _\\-]?([0-9]*)\\.([0-9]*)\\.{0,1}([0-9]*)(dev|)(-[\\0-9]{1,}|)/", $version, -1, PREG_SPLIT_DELIM_CAPTURE);
|
||||
$this->generation = (int) $version[2]; //0-15
|
||||
$this->major = (int) $version[3]; //0-15
|
||||
$this->minor = (int) $version[4]; //0-31
|
||||
$this->generation = isset($version[2]) ? (int) $version[2] : 0; //0-15
|
||||
$this->major = isset($version[3]) ? (int) $version[3] : 0; //0-15
|
||||
$this->minor = isset($version[4]) ? (int) $version[4] : 0; //0-31
|
||||
$this->development = $version[5] === "dev" ? true : false;
|
||||
if($version[6] !== ""){
|
||||
$this->build = intval(substr($version[6], 1));
|
||||
|
Loading…
x
Reference in New Issue
Block a user