help wantedtask
描述
Currently we don't have a proper error handling. We throw exceptions at multiple places, some get caught others not. Also the exceptions are just strings so a proper handling of these exception can't be guaranteed.
To solve this, we need to define a proper way to throw and catch exceptions. We also need to have more detailed error messages for 2 kind of users. One for novice users who don't know the internals and one for powerusers/developers with stacktraces and other interessting stuff.
Some linked issues: #959 #949 #671 #477 #489 #343