So, we introduce a new Annotation IA.LimitedPrivate(Exception) to decorate the exceptions, which are free to catched and propagated by users, but should not be created by users themselves.
张铎(Duo Zhang) <palomino...@gmail.com> 于2020年10月18日周日 下午10:08写道: > I think IA.Public maybe over killed here for some exceptions. > For example, the DoNotRetryIOException, we just want users to catch this > exception, but usually we do not expect users to create this exeption by > their own? > But IA.Public means we can not change the public methods of the class, so > we can not even remove constructors of the exception? > > Maybe special IA.LimitedPrivate(Exception)? Which means you are free to > catch and propagate the exception, but you should not create it by > yourselves? Or use the special methods of the exception? > > Sean Busbey <bus...@apache.org> 于2020年10月18日周日 下午9:46写道: > > > My guess would be IA.Public is needed if the client can take action based > > on the specific exception. So like the do not retry exception should be > > public so folks know those IOExceptions that it's not worth baking off > and > > retrying. > > > > What's the specific list of public vs not? Why do you want the non public > > ones to be public? What limitations are we putting on clients by keeping > > them private? > > > > On Sun, Oct 18, 2020, 07:45 Yulin Niu <yulin.niu.2...@gmail.com> wrote: > > > > > Hi, guys: > > > > > > There are IA.Public and also IA.Private under the hbase-client > > exceptions > > > package, whether the IA.Private exceptions should be IA.Public? > > > e.g.MasterRegistryFetchException, OutOfOrderScannerNextException > > > ,RegionMovedException,RegionOpeningException > > > And any others thing about the IA annotation on exceptions? > > > FYI 2538 <https://github.com/apache/hbase/pull/2538> > > > > > > Thanks > > > > > >