|
|
|
|
|
by amomchilov
217 days ago
|
|
Typed exceptions are unlike typed parameters or return values. They don’t just describe the interface of your function, but expose details about its implementation and constrain future changes. That’s a huge limitation when writing libraries. If you have an old function that declares that it can throw a DatabaseError, you can’t e.g. add caching to it. Adding CacheError to the list of throwable types is an API breaking change, just like changing a return type. Swift has typed errors now, but they shouldn’t be used carefully, and probably not be the default to reach for |
|