<p dir="ltr">It sounds like Mercury DU-based sorts errors are supposed to be used for predictable or expectable exceptions, like "file not found". This is the equivalent of Java checked exceptions. In other words, these represent "normal" conditions (but not necessarily good conditions).</p>

<p dir="ltr">The risky unexpected exceptions, or the ones that should never happen but could theoretically happen anywhere, such as divide by zero, that's what exceptions in Mercury can be used for; they're effectively "program broke" errors, so there is no need to catch them. This is the equivalent of Java's unchecked exceptions. In other words, the current model is fine, but people need to use it properly.</p>

<div class="gmail_quote">On 13 Feb 2013 13:42, "Paul Bone" <<a href="mailto:paul@bone.id.au">paul@bone.id.au</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Wed, Feb 13, 2013 at 01:10:31PM +1100, Michael Day wrote:<br>
> Hi Paul,<br>
><br>
>> How do people feel about checked exceptions?<br>
><br>
> Vehemently opposed :)<br>
><br>
> In my opinion the use of discriminated union types for return values is<br>
> one of the strong points of Mercury programming, and checked exceptions<br>
> would undermine that.<br>
><br>
> Since it would be a new complex addition to the type system, it needs a<br>
> very strong motivation to justify adding it.<br>
><br>
> What is the reason for considering this feature?<br>
<br>
I'm glad you asked in this way.<br>
<br>
Because not everone uses DU types the way they _should_ be used.  So if we<br>
have DU types people should use them and shouldn't need these types of<br>
exceptions.<br>
<br>
Between your e-mail and Micheal Richter's e-mail I'm thinking that something<br>
more like ocamlexp is the right way to go.<br>
<br>
<br>
--<br>
Paul Bone<br>
<a href="http://www.bone.id.au" target="_blank">http://www.bone.id.au</a><br>
_______________________________________________<br>
developers mailing list<br>
<a href="mailto:developers@lists.mercurylang.org">developers@lists.mercurylang.org</a><br>
<a href="http://lists.mercurylang.org/listinfo/developers" target="_blank">http://lists.mercurylang.org/listinfo/developers</a><br>
</blockquote></div>