Skip to content

Commit 5d92de9

Browse files
committed
Custom label not found error
1 parent 1b6116f commit 5d92de9

File tree

3 files changed

+22
-6
lines changed

3 files changed

+22
-6
lines changed

src/DataBlobs/services/BlobEntry.jl

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,18 +67,14 @@ Also see: [`addBlobentry!`](@ref), [`getBlob`](@ref), [`listBlobentries`](@ref)
6767
"""
6868
function getBlobentry(var::AbstractDFGVariable, key::Symbol)
6969
if !hasBlobentry(var, key)
70-
throw(
71-
KeyError(
72-
"No dataEntry label $(key) found in variable $(getLabel(var)). Available keys: $(keys(var.dataDict))",
73-
),
74-
)
70+
throw(DFGLabelError(key, keys(var.dataDict)))
7571
end
7672
return var.dataDict[key]
7773
end
7874

7975
function getBlobentry(var::VariableDFG, key::Symbol)
8076
if !hasBlobentry(var, key)
81-
throw(KeyError(key))
77+
throw(DFGLabelError(key))
8278
end
8379
return var.blobEntries[findfirst(x -> x.label == key, var.blobEntries)]
8480
end

src/DistributedFactorGraphs.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,7 @@ export plotDFG
354354
##==============================================================================
355355

356356
# Entities
357+
include("errors.jl")
357358

358359
include("entities/AbstractDFG.jl")
359360

src/errors.jl

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
"""
2+
DFGLabelError(label)
3+
4+
Label not found.
5+
"""
6+
struct DFGLabelError <: Exception
7+
label::Any
8+
available::Any
9+
end
10+
11+
DFGLabelError(key::T) where {T} = DFGLabelError(key, T[])
12+
13+
function Base.showerror(io::IO, ex::DFGLabelError)
14+
print(io, "DFGLabelError: label ", ex.label, " not found.")
15+
if !isempty(ex.available)
16+
println(io, " Available labels:")
17+
show(io, ex.available)
18+
end
19+
end

0 commit comments

Comments
 (0)