The framework has two types of errors:
1) everything went ok but the results could be something you didn't ask for (i.e.: you load an entity and it wasn't there). These are semantical errors, and you can determine them by checking return values.
2) some error occured during execution of code, which caused an exception and it couldn't be handled locally. An exception is thrown upwards and you'll receive it.
It's up to you how you'd deal with these as the framework can't decide that for you.