Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-4646

Effective Dart and Exceptions

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Trivial
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.12.0
    • Component/s: Dart - Compiler
    • Labels:
      None

      Description

      Thrift implemented dart output ~3 years ago and in doing so outputs exceptions in classes that extend Error[1].  At the time this commit[2] was done this was acceptable. However, a year or so after this commit Effective Dart introduced a rule that you "DON'T" catch Errors or anything that implements them[3].  However, Dart SDK had for the Error type ~5 years ago that they should not be used for expect or catch[4].

      As such this ticket requests that the generator for dart code should have exception types implement Exception rather than extending Error.  Although Error and Exception are used pretty interchangeably in terms of throwing, they do differ for the expect/catch and as such would warrant being included in a major version change.

      [1] - https://github.com/apache/thrift/blob/master/compiler/cpp/src/thrift/generate/t_dart_generator.cc#L781

      [2] - https://github.com/apache/thrift/commit/932c4700c6e3aee20b74d5e2f562326029e6b9c8

      [3] - https://www.dartlang.org/guides/language/effective-dart/usage#dont-explicitly-catch-error-or-types-that-implement-it

      [4] - https://github.com/dart-lang/sdk/commit/460e157416212a0ce90dbfbc6e2e2f68c4e421e8

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                jking3 James E. King III
                Reporter:
                bp1222 Dave Walker
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: