# oops-error

> It is recommended in nodejs to divide all error in to two categories: Operational errors and programmer errors https://www.joyent.com/node-js/production/design/errors

Latest version **2.6.3** (published 2026-08-24) · ISC license · 0 weekly downloads

## Install

```sh
npm install oops-error
pnpm add oops-error
yarn add oops-error
bun add oops-error
```

## Health

**Score 70/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 2.6.3 |
| Published | 2026-08-24 |
| First published | 2018-04-10 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 21.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | tryggingamidstodin |

## Links

- npm: https://www.npmjs.com/package/oops-error
- npm.io page: https://npm.io/package/oops-error

## Recent versions

- 2.6.3 (latest) — 2026-08-24
- 2.6.2 — 2026-08-21
- 2.6.1 — 2026-08-21
- 2.6.0 — 2026-08-14
- 2.5.0 — 2023-05-12
- 2.4.2 — 2023-02-10
- 2.4.1 — 2023-01-06
- 2.4.0 — 2019-01-08
- 2.3.0 — 2018-10-10
- 2.2.0 — 2018-05-29
- 2.1.0 — 2018-05-29
- 2.0.0 — 2018-04-12
- 1.0.2 — 2018-04-11
- 1.0.1 — 2018-04-10
- 1.0.0 — 2018-04-10

## README

# Errors

It is recommended in nodejs to divide all error in to two categories: Operational errors and programmer errors
https://www.joyent.com/node-js/production/design/errors

## Programmer errors

Programmer errors are bugs in the program. These are things that can always be avoided by changing the code. They can never be handled properly (since by definition the code in question is broken). Examples:

*   tried to read property of "undefined"
*   called an asynchronous function without a callback
*   passed a "string" where an object was expected
*   passed an object where an IP address string was expected

## Operational errors

Operational errors represent run-time problems experienced by correctly-written programs. These are not bugs in the program. In fact, these are usually problems with the system itself. Examples include:

*   failed to connect to server
*   failed to resolve hostname
*   invalid user input
*   request timeout
*   server returned a 500 response
*   socket hang-up
*   system is out of memory
*   data from some datasource is missing or not as expected

## Examples

### Oops

```javascript
import { Oops } from 'oops-error'

export const sendEmail = (email) => {
    if(!isValidEmail(email)) {
        throw new Oops({
            message: 'invalid email',
            category: 'OperationalError',
            context: {
                email,
            },
        })
    }
    ...
}
```

### programmerErrorHandler

For promise chains we use handling functions in our catch clauses. Example:

```javascript
import { programmerErrorHandler } from 'oops-error'

...
export const doSomething = (params) => {
    somePromiseFunction().catch(programmerErrorHandler('failed to do something', {params}))
}
...
```

---
_Source: https://npm.io/package/oops-error · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
