Exception chaining: Difference between revisions

Content deleted Content added
explicate and add an example
m AWB assisted spelling of "occurred"; see WP:Typo
Line 1:
'''Exception chaining''', or '''exception wrapping''', is an [[object-oriented programming]] technique of handling [[exception handling|handling exceptions]] by re-throwing a catched exception after wrapping it inside a new exception. The original exception is saved as a property (such as ''cause'') of the new exception. The idea is that a method should throw exceptions defined at the same abstraction level as the method itself, but without discarding information from the lower levels.

For example, a method to play a movie file might handle exceptions in reading the file by re-throwing them inside an exception of movie playing. The user interface might display the time the error occuredoccurred extracted from the movie playing exception (<code>movieplayingexception.time</code>) and the name of the file extracted from the file reading exception (<code>movieplayingexception.cause.filename</code>).
 
Throwing the right kind of exceptions is particularily enforced by [[exception handling#Checked exceptions|checked exceptions]] in the [[Java programming language]], and starting with language version 1.4 all exceptions support chaining.