From b4284e4d1a76172d7c7647f22a66b9b877dc6638 Mon Sep 17 00:00:00 2001 From: Jacob Nguyen <76754747+jacoobes@users.noreply.github.com> Date: Sun, 12 Jan 2025 22:25:50 -0600 Subject: [PATCH] errrefguide --- .../docs/v4/reference/error-handling.mdx | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/content/docs/v4/reference/error-handling.mdx diff --git a/src/content/docs/v4/reference/error-handling.mdx b/src/content/docs/v4/reference/error-handling.mdx new file mode 100644 index 000000000..5f17dc162 --- /dev/null +++ b/src/content/docs/v4/reference/error-handling.mdx @@ -0,0 +1,57 @@ +--- +title: Error handling +description: Properly handle unexpected errors. +sidebar: + order: 9 +--- + +Error handling is important in any application, especially one which has a long lifetime of running. + +## Handling errors in command and event modules. + +To capture errors, enable the 'error' event in sern's global event manager. + +import { FileTree } from '@astrojs/starlight/components'; + + +- src/ + - commands/ + - events/ + - **error.js** + - index.js + - config.js + - dependencies.d.ts + + + +::: tip +Don't forget to enable event handling! +```js title='src/config.js' + export const events = "./dist/events" +``` +::: + + +```js +import { EventType, eventModule } from '@sern/handler' + +export default eventModule({ + type: EventType.Sern, + name: 'error', + execute: (err) => { + console.log('caught', err) + } +}) +``` + +If the error handler is not set, sern's behavior is to crash the application. +This respects [node.js's default behavior](https://nodejs.org/api/events.html#error-events) + + +:::caution + + Be careful about errors thrown IN the error handler. + If this happens, a memory leaks occurs and your bot **will crash**. + +::: +