Bird
Raised Fist0
Kafkadevops~10 mins

Error handling in streams in Kafka - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a Kafka Streams builder.

Kafka
StreamsBuilder [1] = new StreamsBuilder();
Drag options to blanks, or click blank then click option'
AkafkaBuilder
BstreamBuilder
Cstream
Dbuilder
Attempts:
3 left
💡 Hint
Common Mistakes
Using a variable name that is not descriptive or confusing.
Forgetting to create the StreamsBuilder instance.
2fill in blank
medium

Complete the code to add a global error handler to the Kafka Streams configuration.

Kafka
props.put(StreamsConfig.DEFAULT_DESERIALIZATION_EXCEPTION_HANDLER_CLASS_CONFIG, [1].class);
Drag options to blanks, or click blank then click option'
ALogAndContinueExceptionHandler
BFailOnInvalidTimestampExceptionHandler
CLogAndFailExceptionHandler
DIgnoreExceptionHandler
Attempts:
3 left
💡 Hint
Common Mistakes
Using a handler that stops the stream on error.
Choosing a handler that ignores errors silently.
3fill in blank
hard

Fix the error in the code to handle deserialization exceptions by skipping bad records.

Kafka
builder.stream("input-topic", Consumed.with(Serdes.String(), Serdes.String())
       .with[1](new LogAndContinueExceptionHandler()));
Drag options to blanks, or click blank then click option'
AerrorHandler
BdeserializationExceptionHandler
CdeserializationExceptionHandlerClass
DexceptionHandler
Attempts:
3 left
💡 Hint
Common Mistakes
Using a method name that does not exist.
Passing an instance instead of a class.
4fill in blank
hard

Fill both blanks to create a try-catch block that logs and skips processing on exceptions.

Kafka
try {
    processRecord(record);
} catch ([1] e) {
    logger.[2]("Error processing record, skipping", e);
}
Drag options to blanks, or click blank then click option'
AException
Berror
Cwarn
DThrowable
Attempts:
3 left
💡 Hint
Common Mistakes
Catching Throwable which is too broad.
Using logger.error which may stop processing.
5fill in blank
hard

Fill all three blanks to define a custom deserialization exception handler class.

Kafka
public class [1] implements DeserializationExceptionHandler {

    @Override
    public DeserializationHandlerResponse handle(Exception exception, ConsumerRecord<byte[], byte[]> record) {
        // Log the error
        logger.[2]("Deserialization error for record: " + record, exception);
        return DeserializationHandlerResponse.[3];
    }
}
Drag options to blanks, or click blank then click option'
ACustomDeserializationExceptionHandler
Bwarn
CCONTINUE
DhandleException
Attempts:
3 left
💡 Hint
Common Mistakes
Returning FAIL which stops the stream.
Using logger.error which is too severe here.

Practice

(1/5)
1. What is the main purpose of error handling in Kafka streams?
easy
A. To delete all bad data permanently
B. To keep the stream running smoothly even if some data is bad
C. To stop the stream immediately when an error occurs
D. To ignore errors and continue processing without any checks

Solution

  1. Step 1: Understand error handling goal

    Error handling aims to manage problems without stopping the whole process.
  2. Step 2: Identify correct purpose in Kafka streams

    Kafka streams use error handling to keep processing even if some data is bad.
  3. Final Answer:

    To keep the stream running smoothly even if some data is bad -> Option B
  4. Quick Check:

    Error handling = keep stream running [OK]
Hint: Error handling means keep running despite bad data [OK]
Common Mistakes:
  • Thinking error handling stops the stream
  • Assuming bad data is deleted automatically
  • Ignoring the need to handle errors
2. Which syntax correctly shows how to catch exceptions in a Kafka Streams processor in Java?
easy
A. catch (Exception e) { processRecord(); } try { handleError(e); }
B. processRecord() catch Exception e handleError(e)
C. try { processRecord(); } catch (Exception e) { handleError(e); }
D. try processRecord() catch Exception handleError()

Solution

  1. Step 1: Recall Java try-catch syntax

    Java uses try { } catch (Exception e) { } to handle exceptions.
  2. Step 2: Match correct syntax for Kafka Streams processor

    try { processRecord(); } catch (Exception e) { handleError(e); } correctly wraps processRecord() in try and catches Exception e to handle errors.
  3. Final Answer:

    try { processRecord(); } catch (Exception e) { handleError(e); } -> Option C
  4. Quick Check:

    Java try-catch syntax = try { processRecord(); } catch (Exception e) { handleError(e); } [OK]
Hint: Remember Java try-catch blocks use braces and catch after try [OK]
Common Mistakes:
  • Placing catch before try
  • Missing braces {} around try or catch blocks
  • Using incorrect keywords or order
3. Given this Kafka Streams code snippet, what happens when a bad record causes an exception?
streams.foreach((key, value) -> {
  try {
    process(value);
  } catch (Exception e) {
    deadLetterTopic.send(key, value);
  }
});
medium
A. The exception crashes the whole application
B. The stream stops processing immediately
C. The bad record is ignored and lost
D. The bad record is sent to a dead-letter topic for later review

Solution

  1. Step 1: Analyze try-catch block in code

    The code tries to process each record; if an exception occurs, it catches it.
  2. Step 2: Check catch block action

    In catch, the bad record is sent to deadLetterTopic for later review.
  3. Final Answer:

    The bad record is sent to a dead-letter topic for later review -> Option D
  4. Quick Check:

    Exception caught = send to dead-letter topic [OK]
Hint: Catch exceptions and send bad data to dead-letter topic [OK]
Common Mistakes:
  • Assuming stream stops on exception
  • Thinking bad data is lost without handling
  • Believing exception crashes app without catch
4. Identify the error in this Kafka Streams error handling code:
streams.foreach((key, value) -> {
  try {
    process(value);
  } catch Exception e {
    log.error(e.getMessage());
  }
});
medium
A. Missing parentheses around Exception e in catch block
B. Using foreach instead of map for error handling
C. Logging error message is incorrect
D. Try block should be outside the foreach

Solution

  1. Step 1: Check catch block syntax

    In Java, catch must have parentheses around the exception type and variable.
  2. Step 2: Identify missing parentheses

    The code has 'catch Exception e' missing parentheses; correct is 'catch (Exception e)'.
  3. Final Answer:

    Missing parentheses around Exception e in catch block -> Option A
  4. Quick Check:

    Catch syntax requires parentheses [OK]
Hint: Catch blocks always need parentheses around exception [OK]
Common Mistakes:
  • Omitting parentheses in catch
  • Confusing foreach and map usage
  • Thinking logging method is wrong
5. You want to build a Kafka Streams application that processes user events but sends any malformed events to a separate topic without stopping the main stream. Which approach best achieves this?
hard
A. Use a try-catch inside the stream processor to send bad events to a dead-letter topic
B. Stop the stream when a malformed event is detected to fix data immediately
C. Ignore malformed events and continue processing without logging
D. Filter out malformed events before processing without saving them

Solution

  1. Step 1: Understand requirement to keep stream running

    The stream must continue processing even if some events are bad.
  2. Step 2: Choose method to handle bad events

    Using try-catch to catch errors and send bad events to a dead-letter topic allows this.
  3. Final Answer:

    Use a try-catch inside the stream processor to send bad events to a dead-letter topic -> Option A
  4. Quick Check:

    Try-catch + dead-letter topic = best error handling [OK]
Hint: Try-catch plus dead-letter topic keeps stream healthy [OK]
Common Mistakes:
  • Stopping stream on error instead of handling
  • Ignoring bad data without saving for review
  • Filtering bad data without storing it
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard