Skip to content

Catch unhandled errors and promise rejections in your Electron app

License

Notifications You must be signed in to change notification settings

terrorizer1980/electron-unhandled

 
 

Repository files navigation

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 14 or later.

Usage

const unhandled = require('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.

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.

const unhandled = require('electron-unhandled');
const {openNewGitHubIssue, debugInfo} = require('electron-util');

unhandled({
	reportButton: error => {
		openNewGitHubIssue({
			user: 'sindresorhus',
			repo: 'electron-unhandled',
			body: `\`\`\`\n${error.stack}\n\`\`\`\n\n---\n\n${debugInfo()}`
		});
	}
});

Example of how the GitHub issue will look like.

unhandled.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.

error

Type: Error

Error to log.

options

Type: object

title

Type: string
Default: ${appName} encountered an error

The title of the error dialog.

Related

About

Catch unhandled errors and promise rejections in your Electron app

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 95.1%
  • TypeScript 4.9%