TemporarilyUnavailableException does not inherit from ExceptionForCat<ErrorCategory::SystemOverloadedError>

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Execution
    • Storage Execution 2025-06-09
    • None
    • 3
    • TBD
    • None
    • None
    • None
    • None
    • None
    • None
    • 0

      This breaks the rule that ExceptionFor<code> must inherit from ExceptionForCat<category> for each category that code belongs to. This means that that exception will not be caught by catch(const ExceptionForCat<ErrorCategory::SystemOverloadedError>&, but isA<ErrorCategory::SystemOverloadedError>() will return true. This is very weird and not how this is supposed to work. I think there are two valid options here:

      1. Change the definition of the error code to not include any categories if you do not want to fully participate in the category system.
      2. Make TemporarilyUnavailableException inherit from ExceptionForCat<ErrorCategory::SystemOverloadedError>. Since that exception seems to go out of its way to not inherit from AssertionException this will be tricky.

            Assignee:
            Damian Wasilewicz
            Reporter:
            Mathias Stearn
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: