diff --git a/doc/api/errors.md b/doc/api/errors.md
index f6166dc1157c6e..9138da3115b0d8 100644
--- a/doc/api/errors.md
+++ b/doc/api/errors.md
@@ -632,6 +632,12 @@ communication channel to a child process. See [`child.send()`] and
 Used generically to identify when an invalid or unexpected value has been
 passed in an options object.
 
+<a id="ERR_INVALID_REPL_EVAL_CONFIG"></a>
+### ERR_INVALID_REPL_EVAL_CONFIG
+
+Used when both `breakEvalOnSigint` and `eval` options are set
+in the REPL config, which is not supported.
+
 <a id="ERR_INVALID_SYNC_FORK_INPUT"></a>
 ### ERR_INVALID_SYNC_FORK_INPUT
 
diff --git a/lib/internal/errors.js b/lib/internal/errors.js
index a7ec2d75099521..3e4f6f426b594e 100644
--- a/lib/internal/errors.js
+++ b/lib/internal/errors.js
@@ -134,6 +134,8 @@ E('ERR_INVALID_OPT_VALUE',
   (name, value) => {
     return `The value "${String(value)}" is invalid for option "${name}"`;
   });
+E('ERR_INVALID_REPL_EVAL_CONFIG',
+  'Cannot specify both "breakEvalOnSigint" and "eval" for REPL');
 E('ERR_INVALID_SYNC_FORK_INPUT',
   (value) => {
     return 'Asynchronous forks do not support Buffer, Uint8Array or string' +
diff --git a/lib/repl.js b/lib/repl.js
index b36af19d797c7c..fe6c1a5af4e1f2 100644
--- a/lib/repl.js
+++ b/lib/repl.js
@@ -56,6 +56,7 @@ const Console = require('console').Console;
 const Module = require('module');
 const domain = require('domain');
 const debug = util.debuglog('repl');
+const errors = require('internal/errors');
 
 const parentModule = module;
 const replMap = new WeakMap();
@@ -138,7 +139,7 @@ function REPLServer(prompt,
   if (breakEvalOnSigint && eval_) {
     // Allowing this would not reflect user expectations.
     // breakEvalOnSigint affects only the behaviour of the default eval().
-    throw new Error('Cannot specify both breakEvalOnSigint and eval for REPL');
+    throw new errors.Error('ERR_INVALID_REPL_EVAL_CONFIG');
   }
 
   var self = this;
@@ -1022,7 +1023,8 @@ REPLServer.prototype.defineCommand = function(keyword, cmd) {
   if (typeof cmd === 'function') {
     cmd = {action: cmd};
   } else if (typeof cmd.action !== 'function') {
-    throw new Error('Bad argument, "action" command must be a function');
+    throw new errors.TypeError('ERR_INVALID_ARG_TYPE',
+      'action', 'function', cmd.action);
   }
   this.commands[keyword] = cmd;
 };