Оглавление:
- NoClassDefFoundError
- NoSuchMethodError
- Невозможно разрешить символ
- Ожидаемый '; '(Или Expected Something Else)
- Тело отсутствующего метода или объявление абстрактного
- «else» без «if»
- Нестатическая переменная не может быть указана из статического контекста
- FileNotFoundException (система не может найти указанный файл) или EOFException
Видео: Лекция 6. Ошибки || программирования 2025
Иногда сообщения об ошибках могут нанести страх в сердце даже самого смелого программиста. К счастью, некоторые полезные, успокаивающие советы здесь - советы, которые помогут вам решить проблему, когда вы видите одно из этих сообщений.
NoClassDefFoundError
Вы получаете эту ошибку, когда пытаетесь запустить свой код. Итак, сначала спросите себя, пытались ли вы скомпилировать код? Если да, видели ли вы какие-либо сообщения об ошибках при компиляции? Если вы видели сообщения об ошибках, найдите то, что вы можете исправить в своем. java-файл. Попытайтесь исправить эти вещи, а затем скомпилируйте. java файл снова.
Если вы обычно держите код в каталоге JavaPrograms, убедитесь, что вы все еще работаете в этом каталоге JavaPrograms. (В Windows убедитесь, что в командной строке написано JavaPrograms.)
Убедитесь, что у вас есть соответствующее имя. файл класса в вашем рабочем каталоге. Например, если вы пытаетесь запустить программу с именем MyGreatProg, найдите файл с именем MyGreatProg. класса в вашем рабочем каталоге.
Проверьте свой путь к классу, чтобы убедиться, что он содержит. который вам нужен. Например, если весь ваш Java-код находится в вашем рабочем каталоге, убедитесь, что classpath содержит точку.
NoSuchMethodError
Когда вы сталкиваетесь с этим сообщением об ошибке, проверьте наличие орфографической или несогласованной заглавной буквы имени метода. Проверьте капитализацию основного (не основного).
Когда вы выдаете java-команду (или выполняете то, что обычно делаете для запуска программы в своей среде), класс, который вы пытаетесь запустить, содержит свой собственный основной метод? Если нет, то найдите класс с основным методом и запустите этот класс.
Невозможно разрешить символ
Если вы получите сообщение об ошибке, которое включает в себя неспособное разрешить символ, проверьте правописание и заглавные буквы всех идентификаторов и ключевых слов. Затем проверьте еще раз.
Если неразрешенный символ является переменной, убедитесь, что объявление этой переменной находится в нужном месте. Например, если переменная объявлена в инициализации цикла for, вы пытаетесь использовать эту переменную вне цикла for? Если переменная объявлена внутри блока (пара фигурных скобок), пытаетесь ли вы использовать эту переменную за пределами блока?
Наконец, найдите ошибки в объявлении переменной. Если компилятор находит ошибки в объявлении переменной, компилятор не может разрешить это имя переменной в остальной части кода.
Ожидаемый '; '(Или Expected Something Else)
Когда вы увидите сообщение об ошибке «; «ожидайте, просмотрите свой код и убедитесь, что каждый оператор и каждое объявление заканчиваются точкой с запятой.Если это так, то, возможно, ошибка компилятора о недостающей точке с запятой неверна. Исправление другой (казалось бы, несвязанной) ошибки и перекомпиляция вашего кода может избавиться от фиктивного кода; ожидаемое сообщение.
Для отсутствующей круглой скобки проверьте условия операторов if и циклов. Убедитесь, что каждое условие заключено в круглые скобки. Кроме того, убедитесь, что список параметров (заключенный в круглые скобки) следует за именем каждого метода.
Для ожидаемого сообщения проверьте утверждения присваивания. Убедитесь, что каждый оператор присваивания находится внутри метода. (Помните, что объявление с инициализацией может быть вне метода, но каждый простой старый оператор присваивания должен находиться внутри метода.)
Для ожидаемого сообщения «класс» или «интерфейс» убедитесь, что вы пишете правильно. Если у вашего кода есть импортная декларация, проверьте орфографию и капитализацию импорта слова.
Тело отсутствующего метода или объявление абстрактного
Вы получаете недостающий кусок метода или объявляете абстрактное сообщение, когда компилятор видит заголовок метода, но компилятор не может найти тело метода. Посмотрите на конец заголовка метода. Если вы закончили заголовок точкой с запятой, попробуйте удалить точку с запятой.
Если заголовок не заканчивается точкой с запятой, проверьте код сразу после заголовка. Код сразу после заголовка должен начинаться с открытой фигурной скобки (начало тела метода). Если какой-то код находится между заголовком и открытой фигурной скобкой тела, подумайте о том, чтобы переместить этот код в другое место.
«else» без «if»
Сравните количество предложений if с количеством предложений else. В условии if нет необходимости иметь предложение else, но предложение else должно принадлежать к предложению if.
Помните, что вы заключили условие if в круглых скобках, но после условия не ставьте точку с запятой. Вы ошибочно закончили условие if с точкой с запятой?
Посмотрите на все строки между if и else. Когда вы найдете более одного выражения между if и else, найдите фигурные скобки. Если утверждения между if и его else не окружены фигурными фигурными скобками, вы, возможно, нашли виновника.
Нестатическая переменная не может быть указана из статического контекста
Множество вещей, которые могут дать вам нестационарную переменную, нельзя ссылаться на сообщение о статическом контексте. Но для начинающих программистов наиболее распространенной причиной является наличие переменной, объявленной вне основного метода. Грех не объявлять такую переменную, но поскольку основной метод всегда статичен, вам нужна специальная помощь, чтобы основной метод ссылался на переменную, объявленную вне основного метода.
Самое быстрое решение - поставить слово static перед объявлением переменной. Но сначала спросите себя, почему объявление этой переменной не находится внутри основного метода. Если нет веской причины, переместите объявление переменной так, чтобы оно находилось внутри основного метода.
FileNotFoundException (система не может найти указанный файл) или EOFException
Если вы столкнулись с сообщением FileNotFoundException, убедитесь, что файл, указанный в вашем коде, действительно существует.(Ищите файл, используя проводник вашей системы или используя окно командной строки.) Дважды проверьте правописание в коде на имя файла на жестком диске.
Если вы нашли правильно названный файл на своем жестком диске, убедитесь, что файл находится в правильном каталоге. (Для программы, работающей в вашем рабочем каталоге, типичный файл данных также находится в рабочем каталоге.)
Если вы пользователь Windows, убедитесь, что система не добавила лишнего. txt при создании файла. (Используйте окно командной строки, чтобы проверить имя файла. Проводник Windows может скрыть расширение.txt, и это всегда приводит к путанице.)
Для исключения EOFException вы, вероятно, пытаетесь прочитать больше данных, чем в файл. Очень часто небольшая логическая ошибка делает вашу программу такой. Поэтому внимательно изучите все шаги в выполнении вашей программы. Ищите тонкие вещи, например, неправильно обработанные циклы или чтение значений массива за самым большим индексом массива. Ищите условия, которые используют
