ne instanceof de travail pour les sous-classé exceptions?
java.net.ConnectException
s'étend java.net.SocketException
Si je ne les suivants, il sera de répondre à ces deux exceptions? c'est à dire si j'attrape un "parent" exception à l'aide de instanceof
, ne comprenant sous-classé exceptions?
catch (Exception e)
{
if (e instanceof java.net.SocketException)
{
System.out.println("You've caught a SocketException, OR a ConnectException");
}
}
(et pour l'enregistrement, oui, je sais que la capture de la plaine des Exceptions est mauvais, juste de l'utiliser pour cet exemple 😉 )
Pourquoi ne pas l'essayer? (oui, vous l'attraper).
Ça aurait pris moins de temps à essayer de la poser ici...
Qui a dit qu'à chaque question posée sur DONC est demandé par quelqu'un s'est assis avec un IDE? N'avez pas un environnement de développement sur mon iPhone...
Ça aurait pris moins de temps à essayer de la poser ici...
Qui a dit qu'à chaque question posée sur DONC est demandé par quelqu'un s'est assis avec un IDE? N'avez pas un environnement de développement sur mon iPhone...
OriginalL'auteur Jimmy | 2010-11-11
Vous devez vous connecter pour publier un commentaire.
Les Exceptions sont des classes régulières, de sorte
instanceof
fonctionne bien pour eux.Mais vous n'avez pas besoin d'une telle chose. La suite donne le même résultat:
ou les différentes clauses catch?
OriginalL'auteur Bozho
Oui, il va répondre à deux. Parce que ConnectionException EST UNE exception socketexception, c'est aussi une instance de celle-ci.
OriginalL'auteur Nico Huysamen
Bozho a déjà donné la bonne réponse. Je ne sais pas votre cas d'utilisation, mais vous préférez capter les différentes exceptions:
OriginalL'auteur Mot
Je sais que c'est maintenant un bon moyen, mais si vous voulez faire une action personnalisée dans un de nombreux endroits dans le code, vous pouvez faire quelque chose comme ceci:
public class ImageIOExecption extends Exception {
OriginalL'auteur mexekanez
Oui, c'est le
instanceof
œuvres. Pour les exceptions, il est plus courant d'utiliser quelque chose comme cela, si vous vous souciez de différentes exceptions. Cela fonctionne parce que la JVM va travailler le bas de la liste des instructions catch dans l'ordre et exécuter la première qui correspond à.Ou ci-dessous si vous n'avez pas de soins sur la différence entre la Connexion et de la Prise Exception
OriginalL'auteur brain