The benefits of using the Java DSL is that your IDE can smart complete your code as you start typing, rather than having to mess around with buckets of XML. The Java DSL is also very expressive as you can mix and match your own code within the language for Expression or Predicate evaluations or easily add a custom Processor.
The main entry points for the DSL are
CamelContext for creating a Camel routing rulebase
RouteBuilder for creating a collection of routes using the routing DSL
You can handle errors in a number of ways such as:
Camel uses a strategy to resolve how exceptions should be handled.
Using try ... catch ... finally
For more examples of the DSL in action see