JavaRush /Java-Blog /Random-DE /6 Java-Ausnahmen, die Neulinge plagen
gram2005
Level 30

6 Java-Ausnahmen, die Neulinge plagen

Veröffentlicht in der Gruppe Random-DE
Von Zeit zu Zeit stoße ich auf neue Entwickler, die die folgenden einfachen Ausnahmen nicht verstehen können und denen ich alles noch einmal erklären muss. Höchstwahrscheinlich befinden sich viele erfahrene Java-Entwickler in einer ähnlichen Situation und helfen Neulingen, mit den folgenden Ausnahmen umzugehen. Deshalb habe ich beschlossen, diesen Artikel zu schreiben und in Zukunft darauf zu verweisen. Kommentare und Ergänzungen zur Ausschlussliste sind willkommen. 6 Java-Ausnahmen, die Neulinge plagen – 1
  1. NoClassDefFoundError: Dies ist eine dieser Ausnahmen, die Exception in thread “main“ NoClassDefFoundErrorhäufig neue Entwickler in die Welt der Java-Programmierung einlädt. Sie schreiben ein Helloworld-Programm, gehen zur Befehlszeile und schreiben „ java “ – den auszuführenden Befehl und „BAM“ :-) Nach einer Weile werden Anfänger verstehen, wie sie diese Ausnahme beheben können, und sehen, wie ihre Hello World gedruckt wird.

    NoClassDefFoundErrorpassiert, wenn die Java Virtual Machine (JVM) versucht, zur Laufzeit auf eine Klasse zuzugreifen und die Klasse nicht gefunden wird, obwohl dieselbe Klasse zur Kompilierungszeit vorhanden war. Am häufigsten tritt diese Ausnahme auf, wenn ein Java-Programm über den Befehl „java“ mit einem ungültigen Parameterwert ausgeführt wird classpath. [ Classpathist ein Parameter, der über die Befehlszeile oder über eine Umgebungsvariable festgelegt wird und der Java Virtual Machine oder dem Java-Compiler angibt, wo nach vom Benutzer deklarierten Klassen oder Paketen gesucht werden soll – ca. Übersetzer] Mögliche Ausschlussgründe:

    • Kurs nicht verfügbar in Classpath.
    • Oft ändert das Skript, das beim Start des Betriebssystems ausgeführt wird, den Wert der Umgebungsvariablen classpath. Sie können dies überprüfen, indem Sie den setBefehl „“ in der Windows-Befehlszeile ausführen und prüfen, ob die Klassendefinition im Wert enthalten ist classpath. Wenn Sie möchten, können Sie diese Ausnahme im Javarevisited- Blog weiter untersuchen .
  2. ClassNotFoundException: Исключение ClassNotFoundException это еще одно исключение, из-за которого новичкам, только начинающим программировать на Java, снятся кошмары. Интересно что для среднего разработчика нужно некоторое время чтобы перестать путать ClassNotFoundException и NoClassDefFoundError между собой. И поэтому вопрос о разнице этих двух исключений остается одним из часто задаваемых на собеседовании на позицию junior Java разработчика.
    ClassNotFoundException случается когда JVM пытается загрузить определенный класс и не обнаруживает такого же в classpath. Обычно новички сталкиваются с этим в Codeе, который подключается к базе данных используя JDBC библиотеку. Пытаясь загрузить драйвер с помощью следующего Codeа Class.forName( “JDBCdriver”). Хороший материал по ClassNotFoundException можно найти здесь. Так же рекомендуется ознакомиться и понять концепцию загрузчиков классов в Java чтобы эффективно справляться с этим исключением. Вы возможно захотите посмотреть следующую Buchseite о том Wie настроить classpath в окружениях Win/Unix. А так, Wie следует из dokumentierenации Java, это исключение случается в следующих случаях:

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

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

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

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

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

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION