Can a static block throw exceptions? Why or why not?
Yes, a static block can throw exceptions, but only unchecked exceptions (runtime exceptions). It cannot throw checked exceptions, as these must be declared in a throws clause, which static blocks don’t support.
Why? Static blocks execute when the class is loaded, and there’s no mechanism to handle or declare checked exceptions at this stage.
In short: Static blocks can throw runtime exceptions but not checked exceptions because of class-loading constraints.