Awesome
electron-unhandled
Catch unhandled errors and promise rejections in your Electron app
You can use this module directly in both the main and renderer process.
Install
npm install electron-unhandled
Requires Electron 30 or later.
Usage
import unhandled from 'electron-unhandled';
unhandled();
API
unhandled(options?)
You probably want to call this both in the main
process and any renderer
processes to catch all possible errors.
Note: At minimum, this function must be called in the main
process.
options
Type: object
Note: Options can only be specified in the main
process.
logger
Type: Function
Default: console.error
Custom logger that receives the error.
Can be useful if you for example integrate with Sentry.
showDialog
Type: boolean
Default: Only in production
Present an error dialog to the user.
<img src="screenshot.png" width="532">reportButton
Type: Function
Default: undefined
When specified, the error dialog will include a Report…
button, which when clicked, executes the given function with the error as the first argument.
import unhandled from 'electron-unhandled';
import {openNewGitHubIssue} from 'electron-util';
import {debugInfo} from 'electron-util/main';
unhandled({
reportButton: error => {
openNewGitHubIssue({
user: 'sindresorhus',
repo: 'electron-unhandled',
body: `
## Node.js error stack
\`\`\`
${stack}
\`\`\`
## Node.js debug info
${debugInfo()}`
});
}
});
Example of how the GitHub issue will look like.
logError(error, [options])
Log an error. This does the same as with caught unhandled errors.
It will use the same options specified in the unhandled()
call or the defaults.
import {logError} from 'electron-unhandled';
logError(new Error('🦄'));
error
Type: Error
The error to log.
options
Type: object
title
Type: string
Default: ${appName} encountered an error
The title of the error dialog.
Related
- electron-store - Save and load data like user settings, app state, cache, etc
- electron-debug - Adds useful debug features to your Electron app
- electron-context-menu - Context menu for your Electron app
- electron-dl - Simplified file downloads for your Electron app