If you’re out of memory, then you’re forced to treat that as an exception. But in other cases, you the programmer decide what is an exception. You decide what cases you’ll gracefully handle and recover from. Any feature you don’t want to build into your app can be treated as an exception. It’s up to you.