<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div><br class=""><blockquote type="cite" class=""><div class=""><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">I think the problem really comes down to the inflexibility of it; if you specify X, Y, and Z as throwable types, then all code calling that method must handle those types in some way.</div></div></blockquote><div>Imho this is no problem:</div><div>Right now, we basically have "throws Error", and no matter what is actually thrown, we can always catch exhaustive by keeping the statement unspecific.</div><br class=""><blockquote type="cite" class=""><div class="" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span class="Apple-tab-span" style="font-family: Monaco; white-space: pre;">        </span><span style="font-family: Monaco;" class="">func myMethod(args:[String:Any]) throws IOError, IllegalArgumentError? { … }</span></div></blockquote></div>Imho to much confusion with no real benefit:<div class="">Shouldn't it be up to the caller to decide which errors need special treatment? The library can't enforce proper handling at all.</div><div class=""><br class=""></div><div class="">One thing to note with explicit errors is that we'd basically introduce sum types… I think this wouldn't be bad at all, but afaics, core strongly favours enums (and I fear it's to late to really discuss pros and cons of both approaches)</div></body></html>