[ 
https://issues.apache.org/jira/browse/THRIFT-4646?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16638754#comment-16638754
 ] 

ASF GitHub Bot commented on THRIFT-4646:
----------------------------------------

jeking3 closed pull request #1604: THRIFT-4646: change dart generation of 
exception to exception
URL: https://github.com/apache/thrift/pull/1604
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/compiler/cpp/src/thrift/generate/t_dart_generator.cc 
b/compiler/cpp/src/thrift/generate/t_dart_generator.cc
index d190e1682a..414c333b4b 100644
--- a/compiler/cpp/src/thrift/generate/t_dart_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_dart_generator.cc
@@ -777,10 +777,10 @@ void 
t_dart_generator::generate_dart_struct_definition(ostream& out,
   }
   indent(out) << "class " << class_name << " ";
 
+  out << "implements TBase";
   if (is_exception) {
-    out << "extends Error ";
+    out << ", Exception ";
   }
-  out << "implements TBase";
   scope_up(out);
 
   indent(out) << "static final TStruct _STRUCT_DESC = new TStruct(\"" << 
class_name


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Effective Dart and Exceptions
> -----------------------------
>
>                 Key: THRIFT-4646
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4646
>             Project: Thrift
>          Issue Type: Bug
>          Components: Dart - Compiler
>            Reporter: Dave Walker
>            Priority: Trivial
>             Fix For: 0.12.0
>
>
> 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]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to