Fehlermeldung abfangen wenn Host nicht bekannt ist

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Fehlermeldung abfangen wenn Host nicht bekannt ist

    Moin Moin zusammen...

    ich will über einen Button abfragen, ob der Host existiert und seine IP ermitteln... Das klappt soweit auch ganz gut,...
    Problem kommt erst, wenn der Host nicht existiert oder nicht antwortet...

    Hier mal mein Code:

    VB.NET-Quellcode

    1. Private Sub Test_Server_Click(sender As System.Object, e As System.EventArgs) Handles Test_Server.Click
    2. My.Settings.server_name = tb_svname.Text
    3. Dim Addresslist() As IPAddress = Dns.GetHostEntry(tb_svname.Text).AddressList
    4. Dim IPs As IPAddress
    5. For Each IPs In Addresslist
    6. lb_server_ip.Text = IPs.ToString
    7. My.Settings.server_ip = lb_server_ip.Text
    8. Next IPs
    9. End Sub


    Wo fange ich da am besten den Fehlercode ab und wie?
    Dieses kommt als Fehlermeldung:


    Bitte um Hilfe :)

    Danke samson
    Nein! Doch! OHH!
    Moin,

    setze einen Try-Block um den entsprechenden Code, wo der Fehler auftreten kann und fange die entsprechende Exception dieses Typs ab, aber wirklich nur diese!

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @Trade danke...! habs nun so gemacht... geht...

    VB.NET-Quellcode

    1. Private Sub Test_Server_Click(sender As System.Object, e As System.EventArgs) Handles Test_Server.Click
    2. My.Settings.server_name = tb_svname.Text
    3. Try
    4. Dim Addresslist() As IPAddress = Dns.GetHostEntry(tb_svname.Text).AddressList
    5. Dim IPs As IPAddress
    6. For Each IPs In Addresslist
    7. lb_server_ip.Text = IPs.ToString
    8. My.Settings.server_ip = lb_server_ip.Text
    9. Next IPs
    10. Catch
    11. MsgBox("Server """ & tb_svname.Text & """ nicht gefunden")
    12. End Try
    13. End Sub


    Grüße Stefan
    Nein! Doch! OHH!
    Ja, aber Du sollst nur explizit den Typ abfangen, damit andere Exceptions noch voll und detailliert auftreten, denn so kommt dieser Text jedes Mal, auch wenn das Problem ein anderes ist.
    ​MsgBox solltest Du übrigens mit ​MessageBox.Show ersetzen!

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Es kommt ursprünglich aus VB6 und wurde auf unschöne Weise in .NET implementiert und nutzt am Ende auch ​MessageBox.Show, nur eben mit imo unsauberem Code drumrum. Nimm einfach das .NET-konforme. ^^

    Ich sehe übrigens gerade, dass die Exception eine ​SocketException ist, die Du explizit mit ​Catch SocketException abfangen musst.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: