userManyNumbers
userManyNumbers

Reputation: 914

Is there a way to suppress the stacktrace that accompanies an error in the Julia REPL?

Is there a way to suppress the stacktrace that accompanies an error in the Julia REPL (VS Code specific methods acceptable)? It fills my screen with a lot of output that is not useful for me to fix the error, and I regularly must scroll up through it to find the useful, single, first line of error description, and find this inefficient and messy.

Upvotes: 10

Views: 1010

Answers (2)

Alex Muresan
Alex Muresan

Reputation: 9

VS Code specific solution

Installing the "Julia Insiders" extension instead of the regular "Julia" extension solves this issue, as explained here.

I can see the fix is merged into the main branch but for some reason it hasn't made its way into the regular extension.

Upvotes: 0

gTcV
gTcV

Reputation: 2504

Maybe not quite what you wanted, but it's close:

julia> # Sequence of dummy functions to generate long stack trace
       f() = g()
       g() = h()
       h() = k()
       k() = error("Hello world")
k (generic function with 2 methods)

julia> # Default: long stacktrace
       f()
ERROR: Hello world
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] k() at ./REPL[72]:5
 [3] h() at ./REPL[72]:4
 [4] g() at ./REPL[72]:3
 [5] f() at ./REPL[72]:2
 [6] top-level scope at REPL[73]:2

julia> # try/catch to eliminate stacktrace
       try
           f()
       catch e
           printstyled(stderr,"ERROR: ", bold=true, color=:red)
           printstyled(stderr,sprint(showerror,e), color=:light_red)
           println(stderr)
       end
ERROR: Hello world

Upvotes: 1

Related Questions