diff --git a/doc/api/errors.md b/doc/api/errors.md
index 547d1ff8d23609..0f84af35b87e8a 100644
--- a/doc/api/errors.md
+++ b/doc/api/errors.md
@@ -1308,8 +1308,14 @@ An invalid `options.protocol` was passed.
### ERR_INVALID_REPL_EVAL_CONFIG
-Both `breakEvalOnSigint` and `eval` options were set in the REPL config, which
-is not supported.
+Both `breakEvalOnSigint` and `eval` options were set in the [`REPL`][] config,
+which is not supported.
+
+
+### ERR_INVALID_REPL_INPUT
+
+The input can or may not be used in the [`REPL`][]. All prohibited inputs are
+documented in the [`REPL`][]'s documentation.
### ERR_INVALID_RETURN_PROPERTY
@@ -2293,6 +2299,7 @@ such as `process.stdout.on('data')`.
[`Class: assert.AssertionError`]: assert.html#assert_class_assert_assertionerror
[`ERR_INVALID_ARG_TYPE`]: #ERR_INVALID_ARG_TYPE
[`EventEmitter`]: events.html#events_class_eventemitter
+[`REPL`]: repl.html
[`Writable`]: stream.html#stream_class_stream_writable
[`child_process`]: child_process.html
[`cipher.getAuthTag()`]: crypto.html#crypto_cipher_getauthtag
diff --git a/doc/api/repl.md b/doc/api/repl.md
index cc7f3f96da15d7..10f281a2b673d7 100644
--- a/doc/api/repl.md
+++ b/doc/api/repl.md
@@ -138,16 +138,47 @@ global or scoped variable, the input `fs` will be evaluated on-demand as
```
#### Global Uncaught Exceptions
+
The REPL uses the [`domain`][] module to catch all uncaught exceptions for that
REPL session.
This use of the [`domain`][] module in the REPL has these side effects:
-* Uncaught exceptions do not emit the [`'uncaughtException'`][] event.
+* Uncaught exceptions only emit the [`'uncaughtException'`][] event if the
+ `repl` is used as standalone program. If the `repl` is included anywhere in
+ another application, adding this event synchronous will throw an
+ [`ERR_INVALID_REPL_INPUT`][] error!
* Trying to use [`process.setUncaughtExceptionCaptureCallback()`][] throws
an [`ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE`][] error.
+As standalone program:
+
+```js
+process.on('uncaughtException', () => console.log('Uncaught'));
+
+throw new Error('foobar');
+// Uncaught
+```
+
+When used in another application:
+
+```js
+process.on('uncaughtException', () => console.log('Uncaught'));
+// TypeError [ERR_INVALID_REPL_INPUT]: Unhandled exception listeners can not be
+// used in the REPL
+
+throw new Error('foobar');
+// Thrown:
+// Error: foobar
+```
+
#### Assignment of the `_` (underscore) variable