Public voidtestexception () {int a[] = {1,2,3};int q = 0;try{for (int i=0;i<a.length;i++) {a[i]/= q;}} catch (ArithmeticException h) {System.out.print ("arithmeticexception\n"); Execute}catch (Exception e) {System.out.print ("exception\n"); Does not execute, and must be placed behind ArithmeticException/** * The larger exception must not only be placed in the back * and placed in the back will not be executed (by the earlier range of the smaller * exception interception), then what is the point??? */}finally{system.out.print ("finally\n");}} <span style= "color: #3333ff;" >output</span>arithmeticexceptionfinally
* Key points1:AlthoughArithmeticExceptioninherit fromException, but when it happensArithmeticExceptionException
* and capture, it will only capture the actual occurrence of this exception, and will not because Exception is its parent class and
* execute exception that catch clause.
* Essentials 2 : But if you try to add a larger exception catch statement to the catch
* Catch clause unreachable Error " Unreachablecatch block for ArithmeticException.
* Itis already handled by the catch block for Exception "
* ( parent " must be placed behind if there are no inheritance relationships, such as Span style= "Font-family:"times New roman"" >classnotfoundexception
* and the ArithmeticException of the Catch there is no relationship between clauses.
Java Fundamentals: Exception capture Order