Skip to content

Standardize CRUD try catch logic #145

@dehann

Description

@dehann

Error handling inside a CRUD function could be divided into two categories (do or dont do try catch inside CRUD) -- also see similar Midori model here:

  • Type 1: Functional or syntactic errors
  • Type 2: 'not found' / duplicate / invalid value errors / cannot execute

Repeat example from #134

fg = initfg()
flag, var = addVariable!(fg, :x1, Pose2)
@assert flag
flag, var__ = addVariable!(fg, :x1, Pose2)
@assert !flag

# var__ should be empty container, but specifically in this case could also be same as var

Only do try catch on CRUD Type 2 errors?

Example DB, bad comms, etc. Similar discussion for internal retries. Type 2 errors would then also return @assert !flag if internal try catch or retries expired.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions