Cette question concerne les exceptions java, pourquoi y a-t-il des cas où une exception est levée alors que l'exception est interceptée et qu'il n'y a pas d'instruction exit()? mon code ressemble à cecigestion de l'exception java
void bindProxySocket(DefaultHttpClientConnection proxyConnection, String hostName, HttpParams params)
{
if (!proxyConnection.isOpen())
{
Socket socket = null;
try {
socket = new Socket(hostName, 80);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try
{
proxyConnection.bind(socket, params);
}
catch(IOException e)
{
System.err.println ("couldn't bind socket");
e.printStackTrace();
}
}
}
puis
J'appelle cette méthode comme ceci:
bindProxySocket(proxyConn, hostName, params1);
mais, les sorties du programme, bien que je veux gérer l'exception en faisant quelque chose Sinon, est-ce parce que je n'ai pas inclus l'appel de méthode dans une clause try catch? que se passe-t-il si j'attrape à nouveau l'exception même si c'est déjà dans la méthode? et que dois-je faire si je veux nettoyer les ressources dans la clause finale seulement si une exception se produit et sinon je veux continuer avec le programme? Je devine dans ce cas que je dois inclure la totalité du code jusqu'à ce que je puisse nettoyer les ressources avec une instruction try ou puis-je le faire dans l'instruction handle exception? certaines de ces questions sont sur ce cas particulier, mais je voudrais obtenir une réponse approfondie à toutes mes questions pour référence future. grâce
modifier:
java.net.UnknownHostException: www.dsewew324f.com
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at homework3.Proxy.bindProxySocket(Proxy.java:666)
at homework3.Proxy$3.handle(Proxy.java:220)
at org.apache.http.protocol.HttpService.doService(HttpService.java:293)
at org.apache.http.protocol.HttpService.handleRequest(HttpService.java:212)
at homework3.Proxy.start(Proxy.java:472)
at homework3.Proxy.main(Proxy.java:1282)
Exception in thread "main" java.lang.IllegalArgumentException: Socket may not be null
at org.apache.http.impl.DefaultHttpClientConnection.bind(DefaultHttpClientConnection.java:80)
at homework3.Proxy.bindProxySocket(Proxy.java:674)
Donner la pile de l'exception serait utile. – Bozho
Noona, vous avez reçu beaucoup d'aide ci-dessous. Pourquoi ne pas retourner la faveur et upvote de bonnes réponses et accepter le meilleur? –