-
NoClassDefFoundError
: هي انهن استثنان مان هڪ آهي جيڪوException in thread “main“ NoClassDefFoundError
اڪثر ڪري نئين ڊولپرز کي جاوا پروگرامنگ جي دنيا ۾ ڀليڪار ڪري ٿو. هي هيلو ورلڊ پروگرام لکندا آهن، ڪمانڊ لائن ڏانهن ويندا آهن ۽ لکندا آهن “ java ” - ڪم ڪرڻ جو حڪم ۽ “BAM” :-) ٿوري دير کان پوءِ، شروعات ڪندڙ سمجهندا ته هن استثنا کي ڪيئن حل ڪجي ۽ ڏسندا ته سندن هيلو ورلڊ ڪيئن ڇپجي.NoClassDefFoundError
تڏهن ٿئي ٿو جڏهن جاوا ورچوئل مشين (JVM) رن ٽائم تي ڪلاس تائين رسائي حاصل ڪرڻ جي ڪوشش ڪري ٿي ۽ ڪلاس نه ملي ٿو جيتوڻيڪ اهو ساڳيو ڪلاس ڪمپائل ٽائيم تي موجود هو. گهڻو ڪري، هي استثنا تڏهن ٿئي ٿو جڏهن جاوا پروگرام هلائي رهيو آهي "java" ڪمانڊ ذريعي غلط پيٽرولر ويل سانclasspath
. [Classpath
پيراميٽر آهي جيڪو ڪمانڊ لائن ذريعي يا ماحول جي متغير ذريعي مقرر ڪيو ويو آهي، جاوا ورچوئل مشين يا جاوا ڪمپلر ڏانهن اشارو ڪري ٿو جتي صارف پاران اعلان ڪيل ڪلاس يا پيڪيجز کي ڳولڻ لاءِ - تقريبن. مترجم] خارج ڪرڻ جا ممڪن سبب:- ڪلاس ۾ دستياب ناهي
Classpath
. - گهڻو ڪري اسڪرپٽ جيڪو عمل ڪيو ويندو آهي جڏهن آپريٽنگ سسٽم شروع ٿئي ٿو ماحول جي متغير جي قدر کي تبديل ڪري ٿو
classpath
. توھان ھن کي چيڪ ڪري سگھو ٿا "" ڪمانڊ ونڊوز ڪمانڊ لائن تي ھلائيset
۽ ڏسو ته ڇا ڪلاس جي تعريف ويل ۾ شامل آھيclasspath
. جيڪڏھن توھان چاھيو، توھان ھن استثنا کي وڌيڪ ڳولي سگھوٿا Javarevisited بلاگ تي .
- ڪلاس ۾ دستياب ناهي
-
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, это исключение случается в следующих случаях:- Когда пытаются загрузить класс используя метод
Class.forName
и файл.class
не существует вclasspath
. Это самый частый случай из всех трех. - Когда загрузчик класса пытается загрузить класс используя метод
loadClass
. - Когда загрузчик класса пытается загрузить класс используя
findSystemClass
.
- Когда пытаются загрузить класс используя метод
-
NullPointerException
: исключениеNullPointerException
понять легче и новички с ним справляются быстрее нежели с двумя предыдущими. В тоже время причину исключения очень легко найти так How приводится номер строки где оно случилось. В первую очередь исключение случается когда JVM пытается обратиться к null в том месте где должен был быть an object. Чаще всего это случается когда JVM пытается вызвать метод используя an object и оказывается что an object equalsnull
. Другие случаи, How упоминается в documentации Java, могут быть следующими:- Получая доступ к or изменяя метод an object, который equals
null
. - Получая длину массива когда он equals
null
. - Получая доступ к or меняя an objectы, которые являются заключенными в массив, который equals
null
.
null
(далее – проверка на null – прим. переводчика). Поэтому рано or поздно разработчик начинает это использовать и тогда проверки на null появляются везде. Интересно что использовать везде проверку наnull
не считается примером хорошего программирования. Основная причина почему проверка наnull
используется разработчиками это передавать an objectnull
в случаи ошибки. В место этого пример хорошего программирования, который должен пропагандироваться программистами, это передавать пустой an object когда condition для главной/рабочей ветви программы не удовлетворяется. Это в свою очередь уменьшило бы количество проверок наnull
. Все-таки легче говорить нежели применять это на практике.:) - Получая доступ к or изменяя метод an object, который equals
ClassCastException
: это еще одно из исключений, с которым знакомятся новички когда пытаются привести an object к классу, экземпляром которого он не является. Опять же его довольно легко понять, найти причину и исправить. Один из способов избежать этого исключения, когда во время исполнения тип an object не известен, это использовать проверку является ли an object экземпляром определенного класса: “instanceof
”.ArrayIndexOutOfBoundsException
: название этого исключения говорит само за себя. Оно случается когда JVM пытается получить доступ к элементу массива используя неверный индекс, на пример, отрицательный (-1) or больший or равный размеру массива. Его легко понять, найти причину и исправить. Следующий пример codeа поможет избежать этого исключения:for( index = 0; index < array.length; index++ )
Обратите внимание что индекс начинается с 0 и возрастает до величины на 1 меньше размера массива.-
IllegalArgumentException
: Это исключение самое простое, его легко понять, найти его причину и исправить. Оно случается когда JVM пытается передать методу неподходящий аргумент or аргумент неправильного типа.
gram2005
سطح
6 جاوا استثنون جيڪي نئين سکندڙن کي متاثر ڪن ٿا
وقت بوقت مون کي نوان ڊولپرز ملن ٿا جيڪي هيٺ ڏنل سادي استثنائن کي سمجهڻ تي بيٺا آهن ۽ مون کي انهن سڀني کي ٻيهر بيان ڪرڻو پوندو. گهڻو ڪري، ڪيترائي تجربا جاوا ڊولپر پاڻ کي ساڳي صورتحال ۾ ڳوليندا آهن ۽ نون نون کي هيٺين استثنا سان منهن ڏيڻ ۾ مدد ڪن ٿا. تنهن ڪري، مون فيصلو ڪيو ته هي مضمون لکڻ ۽ مستقبل ۾ ان جو حوالو ڏيو. تبصرا ۽ اخراج جي فهرست ۾ اضافو ڀلي ڪري آيا.
GO TO FULL VERSION