Exceptions: Difference between revisions

Content deleted Content added
m Fixed lang tags.
Added Oz example.
Line 730: Line 730:
| _ -> "unknown exception"</lang>
| _ -> "unknown exception"</lang>


=={{header|Perl}}==
=={{header|Oz}}==
===Throw exceptions===
Any value can be thrown as an exception. Typically record values are used.
<lang oz>raise sillyError end
raise slightlyLessSilly(data:42 reason:outOfMemory) end</lang>


===Catching exceptions===
Exception are caught with pattern matching. Ellipsis indicating additional optional fields are often useful here.
<lang oz>try
{Foo}
catch sillyError then
{Bar}
[] slightlyLessSilly(data:D ...) then
{Quux D}
[] _ then %% an unknown type of exception was thrown
{Baz}
finally
{Fin}
end</lang>

=={{header|Perl}}==
<lang perl># throw an exception
<lang perl># throw an exception
die "Danger, danger, Will Robinson!";
die "Danger, danger, Will Robinson!";