Should you generally pass errors that occur in functions and class methods back to the caller to handle?  What are cases when you might not?  I'm asking because I am creating a module to perform the oauth dance, and if you get a negative response from the websites you are trying to access I'm not sure if I should pass it up to the caller, or handle it there.
We usually raiseError when we expect a certain value or input from the user. For eg: If a program requires the user to enter a positive integer and they enter a negative integer, we raise an error and ask them to enter the A POSITIVE INTEGER.
We handle errors when it's not up to the user for it. For eg: If the website to access requires email verification and the email entered by the user is not recognized, you raiseError and ask them to put in a valid email address, but if, the website has a search bar and the string put in does not split properly for the search and we get a keyValueError, it's up to the programmer to handle it.
What is best practice regarding passing errors to the caller?