<div dir="ltr">On Tue, Feb 2, 2016 at 9:23 PM, Lang Hames <span dir="ltr"><<a href="mailto:lhames@gmail.com" target="_blank">lhames@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="auto"><div>I see the attribute as complimentary. The runtime check provides a stronger guarantee: the error cannot be dropped on any path, rather than just "the result is used". The attribute can help you catch obvious violations of this at compile time.</div></div></blockquote><div> </div><div>I agree the runtime check <i>can</i> catch something additional, it just doesn't feel to me like the extra complexity has been justified.</div><div><br></div><div>Or, at least, I'd have imagined a much simpler and straightforward interface would be fully sufficient. E.g., instead of the all the catch/handle stuff, if you want to handle a particular class specially, how about just using an if?<div><div><br></div><div><div>TypedError err = somethingThatCanFail();</div><div>if (err) {</div><div>  if (err.isClassOf(...)) {<br></div><div>    whatever;</div><div>  else</div><div>    return err;<br>}</div></div></div></div></div>