Which of the following statements are correct?
A. Exception Handling can be done for only user-defined exceptions but not for built-in exceptions.
B. In python exception handling, else clause is optional.
C. Try statement in python must have a finally clause.
D. Statements in finally clause are always executed regardless of whether an exception has occurred in try block or not.
E. Except block will be executed only if some exception is raised in try block.
Choose the correct answer from the options given below: