Maison >Java >javaDidacticiel >Comment intercepter une exception en Java
En Java, toute instruction susceptible de lever une exception peut être interceptée avec try...catch. Placez les instructions susceptibles de provoquer des exceptions dans try { ... }, puis utilisez catch pour capturer l'exception correspondante et ses sous-classes.
Plusieurs instructions catch
Vous pouvez utiliser plusieurs instructions catch, chaque catch capture l'exception correspondante et sa sous-classe. Une fois que la JVM a intercepté l'exception, elle fera correspondre l'instruction catch de haut en bas. Après avoir fait correspondre un certain catch, elle exécutera le bloc de code catch et ne continuera plus à correspondre. (Apprentissage recommandé : cours Java )
En termes simples : plusieurs instructions CATCH ne peuvent être exécutées. Par exemple :public static void main(String[] args) { try { process1(); process2(); process3(); } catch (IOException e) { System.out.println(e); } catch (NumberFormatException e) { System.out.println(e); } }Lorsqu'il y a plusieurs catches, l'ordre des catches est très important : les sous-classes doivent être écrites en premier. Par exemple :
public static void main(String[] args) { try { process1(); process2(); process3(); } catch (IOException e) { System.out.println("IO error"); } catch (UnsupportedEncodingException e) { // 永远捕获不到 System.out.println("Bad encoding"); } }Pour le code ci-dessus, l'exception UnsupportedEncodingException ne peut jamais être interceptée car il s'agit d'une sous-classe de IOException. Lorsqu'une exception UnsupportedEncodingException est levée, elle sera interceptée et exécutée par catch (IOException e) { ... }.
Par conséquent, la bonne façon de l'écrire est de mettre la sous-classe en premier :
public static void main(String[] args) { try { process1(); process2(); process3(); } catch (UnsupportedEncodingException e) { System.out.println("Bad encoding"); } catch (IOException e) { System.out.println("IO error"); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!