mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-25 09:41:29 +00:00
Adds Error Handling and Realtime Runtime Reviewal (#4679)
* Adds Error Handler Adds a /world/Error proc to handle runtime errors. This proc replaces the normal runtime logging behavior, providing the following improvements: - Adds timestamps to runtimes - Pads or omits certain lines - Continues logging runtimes after the 99th (with less info, as provided by BYOND) - Adds ckey and accurate xyz to usr info - Continues including usr info after 19th runtime - Silences spammy runtimes (by default, a runtime that occurs 10 times in 10 minutes gets ignored for the next 10 minutes) * Adds runtime viewer Also fixes a minor mistake in the error handler * Sanitizes HTML in Error Viewer Also removes the stray return from the end of the error handler * Prettifies Error Viewer Now uses browser datum and some extra bits of formatting, inspired by the changes made by @PJB3005 * Error Handling Improvements - Skipped error counts now show up in the error viewer - Proper runtimes caught by a process are now sent to the main error handler - The error handler and viewer can now handle a provided src, such as one from a processing runtime - Moved some info generation into helper procs
This commit is contained in:
@@ -326,6 +326,11 @@
|
||||
stat("[name]", "T#[getTicks()] | AR [averageRunTime] | LR [lastRunTime] | HR [highestRunTime] | D [cpu_defer_count]")
|
||||
|
||||
/datum/controller/process/proc/catchException(var/exception/e, var/thrower)
|
||||
if(istype(e)) // Real runtimes go to the real error handler
|
||||
// There are two newlines here, because handling desc sucks
|
||||
e.desc = " Caught by process: [name]\n\n" + e.desc
|
||||
world.Error(e, e_src = thrower)
|
||||
return
|
||||
var/etext = "[e]"
|
||||
var/eid = "[e]" // Exception ID, for tracking repeated exceptions
|
||||
var/ptext = "" // "processing..." text, for what was being processed (if known)
|
||||
|
||||
Reference in New Issue
Block a user