Which of the following statements are true?
A) It is generally considered good coding practice to use assertions to check the arguments
of public methods.
B) As a rule, the expressions contained in assertions should be free of side effects:
evaluating the expression should not affect any state that is visible after
the evaluation is complete.
C) Do not use assertions to do any work that your application requires for correct operation.
D) Assertions only make sense in command line programs since the output from the AssertionError
will never be visible in GUI based applications.
E) A drawback with the new assertion facility is that java sources will not compile and java binaries will not
run if they are using the assert keyword.