diff --git a/src/libcmd/command.cc b/src/libcmd/command.cc
index 940fd5b23..14bb27936 100644
--- a/src/libcmd/command.cc
+++ b/src/libcmd/command.cc
@@ -91,12 +91,6 @@ EvalCommand::EvalCommand()
         .description = "start an interactive environment if evaluation fails",
         .handler = {&startReplOnEvalErrors, true},
     });
-
-    addFlag({
-        .longName = "ignore-try",
-        .description = "ignore exceptions in try clauses during debug",
-        .handler = {&ignoreExceptionsDuringTry, true},
-    });
 }
 
 EvalCommand::~EvalCommand()
@@ -128,9 +122,6 @@ ref<EvalState> EvalCommand::getEvalState()
         if (startReplOnEvalErrors) {
             evalState->debugRepl = &runRepl;
         };
-        if (ignoreExceptionsDuringTry) {
-            evalState->ignoreTry = ignoreExceptionsDuringTry;
-        };
     }
     return ref<EvalState>(evalState);
 }
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index 956c4b474..f485e2fed 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -467,7 +467,6 @@ EvalState::EvalState(
     , debugRepl(nullptr)
     , debugStop(false)
     , debugQuit(false)
-    , ignoreTry(false)
     , trylevel(0)
     , regexCache(makeRegexCache())
 #if HAVE_BOEHMGC
diff --git a/src/libexpr/eval.hh b/src/libexpr/eval.hh
index 9aff77042..b8903c06c 100644
--- a/src/libexpr/eval.hh
+++ b/src/libexpr/eval.hh
@@ -130,7 +130,6 @@ public:
     void (* debugRepl)(ref<EvalState> es, const ValMap & extraEnv);
     bool debugStop;
     bool debugQuit;
-    bool ignoreTry;
     int trylevel;
     std::list<DebugTrace> debugTraces;
     std::map<const Expr*, const std::shared_ptr<const StaticEnv>> exprEnvs;
@@ -648,6 +647,13 @@ struct EvalSettings : Config
 
     Setting<bool> useEvalCache{this, true, "eval-cache",
         "Whether to use the flake evaluation cache."};
+
+    Setting<bool> ignoreExceptionsDuringTry{this, false, "ignore-try",
+        R"(
+          If set to true, ignore exceptions inside 'tryEval' calls when evaluating nix expressions in
+          debug mode (using the --debugger flag). By default the debugger will pause on all exceptions.
+        )"};
+
 };
 
 extern EvalSettings evalSettings;
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index 3a07e43a7..2201ca0c4 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -856,7 +856,7 @@ static void prim_tryEval(EvalState & state, const PosIdx pos, Value * * args, Va
     MaintainCount trylevel(state.trylevel);
 
     void (* savedDebugRepl)(ref<EvalState> es, const ValMap & extraEnv) = nullptr;
-    if (state.debugRepl && state.ignoreTry)
+    if (state.debugRepl && evalSettings.ignoreExceptionsDuringTry)
     {
         /* to prevent starting the repl from exceptions withing a tryEval, null it. */
         savedDebugRepl = state.debugRepl;