Guozhang Wang created KAFKA-1863: ------------------------------------ Summary: Exception categories / hierarchy in clients Key: KAFKA-1863 URL: https://issues.apache.org/jira/browse/KAFKA-1863 Project: Kafka Issue Type: Bug Reporter: Guozhang Wang Assignee: Guozhang Wang Fix For: 0.9.0
In the new clients package we introduces a new set of exceptions, but its hierarchy is not very clear as of today: {code} RuntimeException -> KafkaException -> BufferExhastedException -> ConfigException -> SerializationException -> QuotaViolationException -> SchemaException -> ApiException ApiException -> InvalidTopicException -> OffsetMetadataTooLarge (probabaly need to be renamed) -> RecordBatchTooLargeException -> RecordTooLargeException -> UnknownServerException -> RetriableException RetriableException -> CorruptRecordException -> InvalidMetadataException -> NotEnoughtReplicasAfterAppendException -> NotEnoughReplicasException -> OffsetOutOfRangeException -> TimeoutException -> UnknownTopicOrPartitionException {code} KafkaProducer.send() may throw KafkaExceptions that are not ApiExceptions; other exceptions will be set in the returned future metadata. We need better to 1. Re-examine the hierarchy. For example, for producers only exceptions that are thrown directly from the caller thread before it is appended to the batch buffer should be ApiExceptions; some exceptions could be renamed / merged. 2. Clearly document the exception category / hierarchy as part of the release. [~criccomini] may have some more feedbacks for this issue from Samza's usage experience. [~jkreps] -- This message was sent by Atlassian JIRA (v6.3.4#6332)