java.net.UnknownHostException: שם מארח לא חוקי עבור השרת

1. הקדמה

במדריך זה נלמד את הסיבה ל- UnknownHostException עם דוגמא. נדון גם בדרכים אפשריות למניעה וטיפול בחריג.

2. מתי יוצא החריג?

UnknownHostException מציין שלא ניתן לקבוע את כתובת ה- IP של שם המארח.זה יכול לקרות בגלל שגיאת הקלדה בשם המארח:

מחרוזת שם מארח = "// locaihost"; URL url = URL חדש (שם מארח); HttpURLConnection con = (HttpURLConnection) url.openConnection (); con.getResponseCode ();

הקוד לעיל זורק UnknownHostException מאז האיות שגוי מקום אירוח אינו מצביע על כתובות IP כלשהן.

סיבה אפשרית נוספת ל UnknownHostException הוא עיכוב של התפשטות DNS או תצורה שגויה של DNS.

ייתכן שיידרשו עד 48 שעות עד שהופץ רשומת DNS חדשה ברחבי האינטרנט.

3. כיצד למנוע זאת?

למנוע מלכתחילה את החריג להתרחש עדיף על הטיפול בו לאחר מכן. כמה טיפים למניעת החריג הם:

  1. בדוק פעמיים את שם המארח: ודא שאין שגיאת הקלדה, וקצץ את כל הרווחים הלבנים.
  2. בדוק את הגדרות ה- DNS של המערכת: ודא ששרת ה- DNS זמין וניתן להגיע אליו, ואם שם המארח חדש, המתן לשרת ה- DNS שיתעדכן.

4. כיצד לטפל בזה?

UnknownHostException מרחיב IOException, שהוא חריג מסומן. בדומה לכל חריג מסומן אחר, עלינו לזרוק אותו או להקיף אותו עם נסה לתפוס לַחסוֹם.

בואו נתמודד עם החריג בדוגמה שלנו:

נסה את {con.getResponseCode (); } לתפוס (UnknownHostException e) {con.disconnect (); }

זה נוהג טוב לסגור את החיבור מתי UnknownHostException מתרחשת. הרבה חיבורים פתוחים בזבזניים יכולים לגרום ליישום להיגמר הזיכרון.

5. מסקנה

במאמר זה למדנו מה גורם UnknownHostException, איך למנוע את זה, ואיך לטפל בזה.

כמו תמיד, הקוד זמין ב- Github.