Exception for user-agent error

With this exception, developers can:
 * use `try-catch-finally` to handle errors returned by user-agent.
 * lessen the amount of JavaScript if they wants to do so.