JavaRush /جاوا بلاگ /Random-UR /6 جاوا مستثنیات جو نوزائیدہوں کو متاثر کرتے ہیں۔
gram2005
سطح

6 جاوا مستثنیات جو نوزائیدہوں کو متاثر کرتے ہیں۔

گروپ میں شائع ہوا۔
وقتاً فوقتاً مجھے ایسے نئے ڈویلپرز ملتے ہیں جو درج ذیل آسان استثنیٰ کو سمجھنے میں پھنس گئے ہیں اور مجھے ان سب کو دوبارہ بیان کرنا پڑتا ہے۔ غالباً، بہت سے تجربہ کار جاوا ڈویلپرز خود کو ایسی ہی صورت حال میں پاتے ہیں اور نئے آنے والوں کو درج ذیل مستثنیات سے نمٹنے میں مدد کرتے ہیں۔ اس لیے میں نے یہ مضمون لکھنے اور مستقبل میں اس کا حوالہ دینے کا فیصلہ کیا۔ اخراج کی فہرست میں تبصرے اور اضافے خوش آئند ہیں۔ 6 جاوا مستثنیات جو نوزائیدہوں کو متاثر کرتے ہیں - 1
  1. NoClassDefFoundError: یہ ان مستثنیات میں سے ایک ہے جو Exception in thread “main“ NoClassDefFoundErrorجاوا پروگرامنگ کی دنیا میں اکثر نئے ڈویلپرز کو خوش آمدید کہتے ہیں۔ وہ ایک ہیلوورلڈ پروگرام لکھتے ہیں، کمانڈ لائن پر جاتے ہیں اور لکھتے ہیں " java " - عمل کرنے کی کمانڈ اور "BAM" :-) تھوڑی دیر کے بعد، ابتدائی لوگ سمجھ جائیں گے کہ اس استثناء کو کیسے ٹھیک کیا جائے اور دیکھیں گے کہ ان کی ہیلو ورلڈ کیسے پرنٹ ہوتی ہے۔

    NoClassDefFoundErrorاس وقت ہوتا ہے جب جاوا ورچوئل مشین (JVM) رن ٹائم پر کلاس تک رسائی حاصل کرنے کی کوشش کرتی ہے اور کلاس نہیں ملتی ہے حالانکہ کمپائل کے وقت وہی کلاس موجود تھی۔ اکثر، یہ استثناء اس وقت ہوتا ہے جب جاوا پروگرام کو "java" کمانڈ کے ذریعے غلط پیرامیٹر ویلیو کے ساتھ چلاتے ہیں classpath۔ [ Classpathایک پیرامیٹر ہے جو کمانڈ لائن کے ذریعے یا ماحول کے متغیر کے ذریعے سیٹ کیا جاتا ہے، جاوا ورچوئل مشین یا جاوا کمپائلر کی طرف اشارہ کرتا ہے کہ صارف کی طرف سے اعلان کردہ کلاسز یا پیکجز کو کہاں تلاش کرنا ہے۔ مترجم] اخراج کی ممکنہ وجوہات:

    • میں کلاس دستیاب نہیں ہے Classpath۔
    • اکثر اسکرپٹ جو آپریٹنگ سسٹم کے شروع ہونے پر عمل میں لایا جاتا ہے ماحولیاتی متغیر کی قدر کو تبدیل کرتا ہے classpath۔ آپ اسے ونڈوز کمانڈ لائن پر " " کمانڈ چلا کر چیک کر سکتے ہیں setاور یہ دیکھ سکتے ہیں کہ آیا کلاس کی تعریف ویلیو میں شامل ہے classpath۔ اگر آپ چاہیں تو، آپ Javarevisited بلاگ پر اس استثناء کو مزید دریافت کر سکتے ہیں ۔
  2. ClassNotFoundException: Исключение ClassNotFoundException это еще одно исключение, из-за которого новичкам, только начинающим программировать на Java, снятся кошмары. Интересно что для среднего разработчика нужно некоторое время чтобы перестать путать ClassNotFoundException и NoClassDefFoundError между собой. И поэтому вопрос о разнице этих двух исключений остается одним из часто задаваемых на собеседовании на позицию junior Java разработчика.
    ClassNotFoundException случается когда JVM пытается загрузить определенный класс и не обнаруживает такого же в classpath. Обычно новички сталкиваются с этим в codeе, который подключается к базе данных используя JDBC библиотеку. Пытаясь загрузить драйвер с помощью следующего codeа Class.forName( “JDBCdriver”). Хороший материал по ClassNotFoundException можно найти здесь. Так же рекомендуется ознакомиться и понять концепцию загрузчиков классов в Java чтобы эффективно справляться с этим исключением. Вы возможно захотите посмотреть следующую page о том How настроить classpath в окружениях Win/Unix. А так, How следует из documentации Java, это исключение случается в следующих случаях:

    1. Когда пытаются загрузить класс используя метод Class.forName и файл .class не существует в classpath. Это самый частый случай из всех трех.
    2. Когда загрузчик класса пытается загрузить класс используя метод loadClass.
    3. Когда загрузчик класса пытается загрузить класс используя findSystemClass.
  3. NullPointerException: исключение NullPointerExceptionпонять легче и новички с ним справляются быстрее нежели с двумя предыдущими. В тоже время причину исключения очень легко найти так How приводится номер строки где оно случилось. В первую очередь исключение случается когда JVM пытается обратиться к null в том месте где должен был быть an object. Чаще всего это случается когда JVM пытается вызвать метод используя an object и оказывается что an object equals null. Другие случаи, How упоминается в documentации Java, могут быть следующими:

    1. Получая доступ к or изменяя метод an object, который equals null.
    2. Получая длину массива когда он equals null.
    3. Получая доступ к or меняя an objectы, которые являются заключенными в массив, который equals null.
    Самый простой способ избежать этого исключения это добавить проверку на неequalsство null (далее – проверка на null – прим. переводчика). Поэтому рано or поздно разработчик начинает это использовать и тогда проверки на null появляются везде. Интересно что использовать везде проверку на null не считается примером хорошего программирования. Основная причина почему проверка на null используется разработчиками это передавать an object null в случаи ошибки. В место этого пример хорошего программирования, который должен пропагандироваться программистами, это передавать пустой an object когда condition для главной/рабочей ветви программы не удовлетворяется. Это в свою очередь уменьшило бы количество проверок на null. Все-таки легче говорить нежели применять это на практике.:)

  4. ClassCastException: это еще одно из исключений, с которым знакомятся новички когда пытаются привести an object к классу, экземпляром которого он не является. Опять же его довольно легко понять, найти причину и исправить. Один из способов избежать этого исключения, когда во время исполнения тип an object не известен, это использовать проверку является ли an object экземпляром определенного класса: “instanceof”.

  5. ArrayIndexOutOfBoundsException: название этого исключения говорит само за себя. Оно случается когда JVM пытается получить доступ к элементу массива используя неверный индекс, на пример, отрицательный (-1) or больший or равный размеру массива. Его легко понять, найти причину и исправить. Следующий пример codeа поможет избежать этого исключения: for( index = 0; index < array.length; index++ )
    Обратите внимание что индекс начинается с 0 и возрастает до величины на 1 меньше размера массива.

  6. IllegalArgumentException: Это исключение самое простое, его легко понять, найти его причину и исправить. Оно случается когда JVM пытается передать методу неподходящий аргумент or аргумент неправильного типа.

تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION