[ https://issues.apache.org/jira/browse/KAFKA-7016?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16969380#comment-16969380 ]
Viliam Durina commented on KAFKA-7016: -------------------------------------- I add my vote to this: the exceptions are much less useful. Exceptions cost nothing if they're not thrown, which is the normal case. If you use exceptions internally in normal execution, avoid that. I have a complex code and don't know where in my code the problem happened. I ended up wrapping each kafka call individually with this to find out: {{handleExc(() -> /* the kafka call here */);}} {{private static void handleExc(RunnableExc<Exception> action) {}} {{ try {}} {{ action.run();}} {{ } catch (Exception e) {}} {{ throw new RuntimeException(e);}} {{ }}} {{}}} Very annoying. > Reconsider the "avoid the expensive and useless stack trace for api > exceptions" practice > ---------------------------------------------------------------------------------------- > > Key: KAFKA-7016 > URL: https://issues.apache.org/jira/browse/KAFKA-7016 > Project: Kafka > Issue Type: Bug > Reporter: Martin Vysny > Priority: Major > > I am trying to write a Kafka Consumer; upon running it only prints out: > {\{ org.apache.kafka.common.errors.InvalidGroupIdException: The configured > groupId is invalid}} > Note that the stack trace is missing, so that I have no information which > part of my code is bad and need fixing; I also have no information which > Kafka Client method has been called. Upon closer examination I found this in > ApiException: > > {{/* avoid the expensive and useless stack trace for api exceptions */}} > {{@Override}} > {{public Throwable fillInStackTrace() {}} > \{{ return this;}} > {{}}} > > I think it is a bad practice to hide all useful debugging info and trade it > for dubious performance gains. Exceptions are for exceptional code flow which > are allowed to be slow. > > This applies to kafka-clients 1.1.0 -- This message was sent by Atlassian Jira (v8.3.4#803005)