Ошибка во время исполнения java

Чтобы разобраться, в чем разница между ошибками времени компиляции и ошибками времени выполнения в Java, разберемся в сути каждого вида.

Ошибки времени компиляции

Это синтаксические ошибки в коде, которые препятствуют его компиляции.

Пример

public class Test{
   public static void main(String args[]){
      System.out.println("Hello")
   }
}

Итог

C:\Sample>Javac Test.java
Test.java:3: error: ';' expected
   System.out.println("Hello")

Ошибки времени выполнения

Исключение (или исключительное событие) – это проблема, возникающая во время выполнения программы. Когда возникает исключение, нормальный поток программы прерывается, и программа / приложение прерывается ненормально, что не рекомендуется, поэтому эти исключения должны быть обработаны.

Пример

import java.io.File;
import java.io.FileReader;

public class FilenotFound_Demo {
   public static void main(String args[]) {
      File file = new File("E://file.txt");
      FileReader fr = new FileReader(file);
   }
}

Итог

C:\>javac FilenotFound_Demo.java
FilenotFound_Demo.java:8: error: unreported exception
FileNotFoundException; must be caught or declared to be thrown
   FileReader fr = new FileReader(file);
                   ^
1 error

Error is an illegal operation performed by the user which results in the abnormal working of the program. Programming errors often remain undetected until the program is compiled or executed. Some of the errors inhibit the program from getting compiled or executed. Thus errors should be removed before compiling and executing. 

The most common errors can be broadly classified as follows:

1. Run Time Error: 

Run Time errors occur or we can say, are detected during the execution of the program. Sometimes these are discovered when the user enters an invalid data or data which is not relevant. Runtime errors occur when a program does not contain any syntax errors but asks the computer to do something that the computer is unable to reliably do. During compilation, the compiler has no technique to detect these kinds of errors. It is the JVM (Java Virtual Machine) that detects it while the program is running. To handle the error during the run time we can put our error code inside the try block and catch the error inside the catch block. 

For example: if the user inputs a data of string format when the computer is expecting an integer, there will be a runtime error. Example 1: Runtime Error caused by dividing by zero 

Java

class DivByZero {

    public static void main(String args[])

    {

        int var1 = 15;

        int var2 = 5;

        int var3 = 0;

        int ans1 = var1 / var2;

        int ans2 = var1 / var3;

        System.out.println(

            "Division of va1"

            + " by var2 is: "

            + ans1);

        System.out.println(

            "Division of va1"

            + " by var3 is: "

            + ans2);

    }

}

Runtime Error in java code:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at DivByZero.main(File.java:14)

Example 2: Runtime Error caused by Assigning/Retrieving Value from an array using an index which is greater than the size of the array 

Java

class RTErrorDemo {

    public static void main(String args[])

    {

        int arr[] = new int[5];

        arr[9] = 250;

        System.out.println("Value assigned! ");

    }

}

RunTime Error in java code:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
    at RTErrorDemo.main(File.java:10)

2. Compile Time Error: 

Compile Time Errors are those errors which prevent the code from running because of an incorrect syntax such as a missing semicolon at the end of a statement or a missing bracket, class not found, etc. These errors are detected by the java compiler and an error message is displayed on the screen while compiling. Compile Time Errors are sometimes also referred to as Syntax errors. These kind of errors are easy to spot and rectify because the java compiler finds them for you. The compiler will tell you which piece of code in the program got in trouble and its best guess as to what you did wrong. Usually, the compiler indicates the exact line where the error is, or sometimes the line just before it, however, if the problem is with incorrectly nested braces, the actual error may be at the beginning of the block. In effect, syntax errors represent grammatical errors in the use of the programming language. 

Example 1: Misspelled variable name or method names 

Java

class MisspelledVar {

    public static void main(String args[])

    {

        int a = 40, b = 60;

        int Sum = a + b;

        System.out.println(

            "Sum of variables is "

            + sum);

    }

}

Compilation Error in java code:

prog.java:14: error: cannot find symbol
            + sum);
              ^
  symbol:   variable sum
  location: class MisspelledVar
1 error

Example 2: Missing semicolons 

Java

class PrintingSentence {

    public static void main(String args[])

    {

        String s = "GeeksforGeeks";

        System.out.println("Welcome to " + s)

    }

}

Compilation Error in java code:

prog.java:8: error: ';' expected
        System.out.println("Welcome to " + s)
                                             ^
1 error

Example: Missing parenthesis, square brackets, or curly braces 

Java

class MissingParenthesis {

    public static void main(String args[])

    {

        System.out.println("Printing 1 to 5 \n");

        int i;

        for (i = 1; i <= 5; i++ {

            System.out.println(i + "\n");

        }

    }

}

Compilation Error in java code:

prog.java:10: error: ')' expected
        for (i = 1; i <= 5; i++ {
                               ^
1 error

Example: Incorrect format of selection statements or loops 

Java

class IncorrectLoop {

    public static void main(String args[])

    {

        System.out.println("Multiplication Table of 7");

        int a = 7, ans;

        int i;

        for (i = 1, i <= 10; i++) {

            ans = a * i;

            System.out.println(ans + "\n");

        }

    }

}

Compilation Error in java code:

prog.java:12: error: not a statement
        for (i = 1, i <= 10; i++) {
                      ^
prog.java:12: error: ';' expected
        for (i = 1, i <= 10; i++) {
                                ^
2 errors

Logical Error: A logic error is when your program compiles and executes, but does the wrong thing or returns an incorrect result or no output when it should be returning an output. These errors are detected neither by the compiler nor by JVM. The Java system has no idea what your program is supposed to do, so it provides no additional information to help you find the error. Logical errors are also called Semantic Errors. These errors are caused due to an incorrect idea or concept used by a programmer while coding. Syntax errors are grammatical errors whereas, logical errors are errors arising out of an incorrect meaning. For example, if a programmer accidentally adds two variables when he or she meant to divide them, the program will give no error and will execute successfully but with an incorrect result. 

Example: Accidentally using an incorrect operator on the variables to perform an operation (Using ‘/’ operator to get the modulus instead using ‘%’) 

Java

public class LErrorDemo {

    public static void main(String[] args)

    {

        int num = 789;

        int reversednum = 0;

        int remainder;

        while (num != 0) {

            remainder = num / 10;

            reversednum

                = reversednum * 10

                  + remainder;

            num /= 10;

        }

        System.out.println("Reversed number is "

                           + reversednum);

    }

}

Output:

Reversed number is 7870

Example: Displaying the wrong message 

Java

class IncorrectMessage {

    public static void main(String args[])

    {

        int a = 2, b = 8, c = 6;

        System.out.println(

            "Finding the largest number \n");

        if (a > b && a > c)

            System.out.println(

                a + " is the largest Number");

        else if (b > a && b > c)

            System.out.println(

                b + " is the smallest Number");

        else

            System.out.println(

                c + " is the largest Number");

    }

}

Output:

Finding the largest number 

8 is the smallest Number

Syntax Error:

Syntax and Logical errors are faced by Programmers.

Spelling or grammatical mistakes are syntax errors, for example, using an uninitialized variable, using an undefined variable, etc., missing a semicolon, etc.

int x, y;
x = 10 // missing semicolon (;)
z = x + y; // z is undefined, y in uninitialized.

Syntax errors can be removed with the help of the compiler.

Last Updated :
08 Jun, 2022

Like Article

Save Article

In one of my prof slides on ploymorphism, I see this piece of code with a couple of comments:

discountVariable =              //will produce
  (DiscountSale)saleVariable;//run-time error
discountVariable = saleVariable //will produce
                                //compiler error

As you can see, it says in the first casting statement that it’ll produce run-time error and in the other one it says it’ll produce compiler error.

What makes these errors? and how they differ from each other?

The Unfun Cat's user avatar

The Unfun Cat

30.1k31 gold badges114 silver badges156 bronze badges

asked Feb 27, 2012 at 20:31

AbdullahR's user avatar

3

A run time error will only occur when the code is actually running.
These are the most difficult — and lead to program crashes and bugs in your code which can be hard to track down.

An example might be trying to convert a string: «hello» into an integer:

string helloWorld = "hello";
int willThrowRuntimeError = Convert.ToInt32(helloWorld);

The compiler may not see this as a problem but when run an error will be thrown.

Compiler errors are due to inaccuracies in code, where the compiler throws an error to alert you to something which will not compile, and therefore cannot be run.

An example of a compiler error would be:

int = "this is not an int";

starball's user avatar

starball

21.2k7 gold badges47 silver badges256 bronze badges

answered Feb 27, 2012 at 20:38

DIXONJWDD's user avatar

DIXONJWDDDIXONJWDD

1,27610 silver badges20 bronze badges

1

A runtime error happens during the running of the program. A compiler error happens when you try to compile the code.

If you are unable to compile your code, that is a compiler error.

If you compile and run your code, but then it fails during execution, that is runtime.

answered Feb 27, 2012 at 20:33

James Montagne's user avatar

James MontagneJames Montagne

77.6k14 gold badges110 silver badges130 bronze badges

2

Compile time errors refers to syntax and semantics. For example, if you do operations that involves different types. Ex: adding a string with an int, or dividing a string by a real. (read the last paragraph thou!!!)

Run Time errors are those that are detected when the program execute. For example, division by zero. The compiler can not know if the operation x/a-b will leads to division by zero until the execution.

This is a very broad explanation. There are many smart compilers, and, also, is possible to do internal casting among different types that leads to operations that make sense. It it possible to pre-compile code and see some run time errors even if the code is not executed.

Refer to this link too: Runtime vs Compile time

Community's user avatar

answered Feb 27, 2012 at 20:37

Compile time errors are errors of syntax and semantics.

Run time errors are errors of logic primarily. Due to something the programmer has overlooked, the program crashes e.g. division by 0, accessing a variable without initializing it first etc.

answered Jun 8, 2015 at 7:03

Hadi's user avatar

HadiHadi

5209 silver badges21 bronze badges

Compile Time error means that the Compiler knows that discountVariable = saleVariable must be end with a semi colon as belowdiscountVariable = saleVariable;so it will throw an error when you compile the code.

Run Time error means that the error will occur at run time, because even though you are casting saleVariable into discountVariable, the cast cannot take because they differ in type.

Kasun Siyambalapitiya's user avatar

answered Feb 27, 2012 at 20:33

CodeBlue's user avatar

CodeBlueCodeBlue

14.6k33 gold badges94 silver badges132 bronze badges

think you’ve already got the general desc of what’s the difference. Specifically in the code you have shown in the OP,

  • In second statement, compiler compares the types on LHS and RHS and finds no implicit cast possible so it gives the error.
  • first statement is seen by compiler as the same, but here programmer explicitly casts the type, which is as good as telling compiler that I know what I’m doing and of course the compiler trusts you and gives you no errors.

answered Feb 27, 2012 at 20:50

Kashyap's user avatar

KashyapKashyap

15.4k13 gold badges64 silver badges104 bronze badges

1

Its because the compiler doesn’t know the object type of «saleVariable» until that value has actually been set when the program is running.

Your are forcing whatever is in salesVariable into the type DiscountSale this is considered unsafe and cannot be evaluated until runtime.

answered Feb 27, 2012 at 20:33

bigamil's user avatar

bigamilbigamil

6574 silver badges12 bronze badges

2

Compilation/Compile time/Syntax/Semantic errors: Compilation or compile time errors are error occurred due to typing mistake, if we do not follow the proper syntax and semantics of any programming language then compile time errors are thrown by the compiler. They wont let your program to execute a single line until you remove all the syntax errors or until you debug the compile time errors.
Example: Missing a semicolon in C or mistyping int as Int.

Runtime errors: Runtime errors are the errors that are generated when the program is in running state. These types of errors will cause your program to behave unexpectedly or may even kill your program. They are often referred as Exceptions.
Example: Suppose you are reading a file that doesn’t exist, will result in a runtime error.

Read more about all programming errors here

answered May 25, 2015 at 5:37

Pankaj Prakash's user avatar

If you’d use Google, you’d get this:

Compile time error is any type of error that prevent a java program compile like a syntax error, a class not found, a bad file name for the defined class, a possible loss of precision when you are mixing different java data types and so on.

A runtime error means an error which happens, while the program is running. To deal with this kind of errors java define Exceptions. Exceptions are objects represents an abnormal condition in the flow of the program. It can be either checked or unchecked.

http://wiki.answers.com/Q/Difference_between_run_time_error_and_compile_time_error_in_java

Community's user avatar

answered Feb 27, 2012 at 20:32

2

Compiler errors are due to inaccuracies in code, where the compiler throws an error to alert you to something which will not compile, and therefore cannot be run.

Ex :- MethodOverloading

class OverloadingTest {
    void sum(int a, long b) {
        System.out.println("a method invoked");
    }

    void sum(long a, int b) {
        System.out.println("b method invoked");
    }

    public static void main(String args[]) {
        OverloadingTest obj = new OverloadingTest();
        obj.sum(200, 200);// now ambiguity
    }
}

Run Time errors are those that are detected when the program execute. For example, division by zero. The compiler can not know if the operation x/a-b will leads to division by zero until the execution

answered Apr 21, 2015 at 8:48

Nikhil Kumar's user avatar

Nikhil KumarNikhil Kumar

2,6383 gold badges21 silver badges24 bronze badges

Ошибка времени выполнения будет возникать только тогда, когда код действительно запущен.
Это наиболее сложно — и привести к сбоям программы и ошибкам в вашем коде, которые трудно отследить.

В примере может потребоваться преобразовать строку: «hello» в целое число:

string helloWorld = "hello";
int willThrowRuntimeError = Convert.ToInt32(helloWorld);

Компилятор может не рассматривать это как проблему, но при запуске будет выведена ошибка.

Ошибки компилятора связаны с неточностями в коде, где компилятор выдает ошибку, чтобы предупредить вас о том, что не будет компилироваться и, следовательно, не может быть запущено.

Пример ошибки компилятора:

int = "this is not an int";

Надеюсь, что это поможет.

jwddixon

Поделиться

Ошибка во время выполнения во время работы программы. Ошибка компилятора возникает при попытке скомпилировать код.

Если вы не можете скомпилировать свой код, это ошибка компилятора.

Если вы компилируете и запускаете свой код, но затем он не выполняется во время выполнения, это время выполнения.

James Montagne

Поделиться

Ошибки времени компиляции относятся к синтаксису и семантике. Например, если вы выполняете операции с различными типами. Пример: добавление строки с int или деление строки на реальный. (прочитайте последний параграф!)

Ошибки времени выполнения — это те, которые обнаруживаются при выполнении программы. Например, деление на ноль. Компилятор не может знать, приведет ли операция x/a-b к делению на ноль до выполнения.

Это очень широкое объяснение. Существует много интеллектуальных компиляторов, а также возможность внутреннего кастинга между различными типами, что приводит к операциям, которые имеют смысл. Это возможно для предварительного компиляции кода и просмотра некоторых ошибок времени выполнения, даже если код не выполняется.

См. также эту ссылку: Время выполнения и время компиляции

Kani

Поделиться

Ошибки времени компиляции — это ошибки синтаксиса и семантики.

Ошибки времени выполнения являются ошибками логики в первую очередь. Из-за чего-то, о котором забыл программист, программа вылетает, например. деление на 0, обращение к переменной без инициализации первой и т.д.

Hadi

Поделиться

Ошибка компиляции означает, что компилятор знает, что discountVariable = saleVariable должен быть завершен с помощью двоеточия ниже discountVariable = saleVariable;, поэтому он будет вызывать ошибку при компиляции кода.

Ошибка времени выполнения означает, что ошибка будет возникать во время выполнения, потому что, даже если вы производите продажуVariable в discountVariable, бросок не может принимать, поскольку они различаются по типу.

CodeBlue

Поделиться

Думаю, у вас уже есть общий смысл того, в чем разница. В частности, в коде, который вы указали в OP,

  • Во втором утверждении компилятор сравнивает типы на LHS и RHS и не обнаруживает, что имплицитное применение невозможно, поэтому оно дает ошибку.
  • первый оператор рассматривается как один и тот же, но здесь программист явно использует тип, который так же хорош, как компилятор, что я знаю, что я делаю, и, конечно, компилятор доверяет вам и не дает вам никаких ошибок.

Kashyap

Поделиться

Потому что компилятор не знает тип объекта «saleVariable», пока это значение не было установлено, когда программа запущена.

Вы заставляете все, что есть в salesVariable, в тип DiscountSale, это считается небезопасным и не может быть оценено до времени выполнения.

bigamil

Поделиться

Компиляция/время компиляции/синтаксис/семантические ошибки: Ошибки компиляции или компиляции возникают из-за ошибки ввода, если мы не следуем правильному синтаксису и семантике любого языка программирования, тогда компилируем время ошибки генерируются компилятором. Они не позволят вашей программе выполнять одну строку до тех пор, пока вы не удалите все синтаксические ошибки или пока не будете отлаживать ошибки времени компиляции.
Пример: Отсутствие точки с запятой в C или опечатки int как int.

Ошибки времени выполнения: Ошибки времени выполнения — это ошибки, возникающие при запуске программы. Эти типы ошибок приведут к тому, что ваша программа будет вести себя непредсказуемо или даже может убить вашу программу. Их часто называют исключениями.
Пример: предположим, что вы читаете файл, который не существует, приведет к ошибке выполнения.

Подробнее о ошибки программирования здесь

Pankaj Prakash

Поделиться

Ошибки компилятора связаны с неточностями в коде, где компилятор выдает ошибку, чтобы предупредить вас о том, что не будет компилироваться и, следовательно, не может быть запущено.

Пример: — Метод загрузки

class OverloadingTest {
    void sum(int a, long b) {
        System.out.println("a method invoked");
    }

    void sum(long a, int b) {
        System.out.println("b method invoked");
    }

    public static void main(String args[]) {
        OverloadingTest obj = new OverloadingTest();
        obj.sum(200, 200);// now ambiguity
    }
}

Ошибки времени выполнения — это те, которые обнаруживаются при выполнении программы. Например, деление на ноль. Компилятор не может знать, приведет ли операция x/a-b к делению на ноль до выполнения

Nikhil Kumar

Поделиться

Если вы используете Google, вы получите следующее:

Ошибка времени компиляции — это любой тип ошибки, который предотвращает компиляцию java-программы как синтаксическая ошибка, не найденный класс, неправильное имя файла для определенного класса, возможная потеря точности при смешивании разных типов данных Java и и так далее.

Ошибка времени выполнения означает ошибку, которая происходит, когда программа запущена. Чтобы справиться с такими ошибками, java определит Исключения. Исключения представляют собой объекты, представляющие собой ненормальное условие в потоке программы. Он может быть установлен или не установлен.

http://wiki.answers.com/Q/Difference_between_run_time_error_and_compile_time_error_in_java

user647772

Поделиться

Ещё вопросы

  • 0UI-роутер: обновить родителя от ребенка
  • 1Возможны ли два пакета в одном APK?
  • 0Как настроить сервер Go на совместимость с AngularJS html5mode?
  • 0Подменю на заказ JQuery
  • 1Почтовый клиент Swing выбрасывает javax.mail.AuthenticationFailedException
  • 0навигатор настроен на полный диапазон
  • 1Как добавить аннотации Java в JNI SWIG API?
  • 0изображение не загружается при использовании наследования шаблонов
  • 1Строки с одинаковым содержимым не равны?
  • 1Конструктор не определен, говорит Eclipse, но он определен (Java)
  • 0Выравнивание текста по вертикали внутри ссылки внутри <li>, который должен расширяться по горизонтали
  • 0Python слишком много значений, чтобы распаковать при попытке вставить данные из словаря
  • 0Scanf и строки в C ++
  • 1Как я могу отправить данные в определенный сокет?
  • 0Разбить UL на несколько столбцов
  • 0XChat 2 возвращает «No xchat_plugin_init symbol» для библиотеки DLL
  • 0MySQL один ко многим получает не подходящую запись
  • 0jQuery DatePicker проблема, когда на веб-странице используются несколько элементов с одинаковым именем класса
  • 0Одинаковый интерфейс Ionic Framework для мобильных и не мобильных браузеров?
  • 0Как mysqli_fetch_row при использовании mysqli_multi_query
  • 0Очистка угловых частей
  • 1Как добавить дополнительный исходный каталог для maven для использования только при выполнении тестов или при отладке?
  • 1В чем разница между ключевым словом volatile и static?
  • 1Проблемы с конвертацией проекта Android Studio в новый ключ API
  • 0Удалите окончания строк с помощью регулярных выражений и preg_replace
  • 0Получение долготы в восточном или западном направлении по маршруту
  • 0array_count_values рандомизировать совпадающие значения
  • 1Как добавить строку в сценарии Java с предварительным увеличением в той же строке
  • 1Доступ к API Bloomberg из браузера клиента в JavaScript
  • 1смещение фиксации потоковой передачи pyspark к kafka
  • 0Ошибка файла не найден при запуске программы в Visual Studio 2010
  • 0Преобразование SQL-сценария оракула в MySQL
  • 1Как скрыть стрелку слева от заголовков DataGrid?
  • 1PrintWriter удаляет старое содержимое текстового файла при записи
  • 1Динамическое вычисление SVG Path для полного круга с помощью JavaScript
  • 0Не удается подключиться к MySQL с помощью Spring в Docker
  • 1Есть ли разница между клиентом MDI, контейнером MDI и родителем MDI?
  • 1Android MVVM и Retrofit api — нулевой ответ
  • 0удалить событие тега в теге jquery
  • 1Значения атрибутов привязки данных к комбинированному списку
  • 1System.DayOfWeek enum — ошибки сущностей при сохранении с проблемами KnownType; DevForce 2012
  • 1Установить путь к встроенной базе данных neo4j во время выполнения
  • 1Увеличение 3-го вхождения цифры в строку с помощью JavaScript
  • 0Слайд-тумблер на динамическом контенте
  • 1В Joda-time 2.1 имеет значение long, переданное в DateTimeZOne.getStandardOffset?
  • 1Не могу неявно преобразовать целое число типа в bool
  • 1сбой приложения при добавлении google login firebaseui
  • 1pandas.read_csv () интерпретирует TRUE как логическое значение, мне нужна строка
  • 0Запустите .exe файл кода C, используя Eclipse
  • 0Komodo 8.5: фрагменты PHP ‘block’ и ‘inline’ не работают там, где это необходимо

Error is an illegal operation performed by the user which results in the abnormal working of the program. Programming errors often remain undetected until the program is compiled or executed. Some of the errors inhibit the program from getting compiled or executed. Thus errors should be removed before compiling and executing. 

The most common errors can be broadly classified as follows:

1. Run Time Error: 

Run Time errors occur or we can say, are detected during the execution of the program. Sometimes these are discovered when the user enters an invalid data or data which is not relevant. Runtime errors occur when a program does not contain any syntax errors but asks the computer to do something that the computer is unable to reliably do. During compilation, the compiler has no technique to detect these kinds of errors. It is the JVM (Java Virtual Machine) that detects it while the program is running. To handle the error during the run time we can put our error code inside the try block and catch the error inside the catch block. 

For example: if the user inputs a data of string format when the computer is expecting an integer, there will be a runtime error. Example 1: Runtime Error caused by dividing by zero 

class DivByZero {

    public static void main(String args[])

    {

        int var1 = 15;

        int var2 = 5;

        int var3 = 0;

        int ans1 = var1 / var2;

        int ans2 = var1 / var3;

        System.out.println(

            "Division of va1"

            + " by var2 is: "

            + ans1);

        System.out.println(

            "Division of va1"

            + " by var3 is: "

            + ans2);

    }

}

Runtime Error in java code:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at DivByZero.main(File.java:14)

Example 2: Runtime Error caused by Assigning/Retrieving Value from an array using an index which is greater than the size of the array 

Java

class RTErrorDemo {

    public static void main(String args[])

    {

        int arr[] = new int[5];

        arr[9] = 250;

        System.out.println("Value assigned! ");

    }

}

RunTime Error in java code:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
    at RTErrorDemo.main(File.java:10)

2. Compile Time Error: 

Compile Time Errors are those errors which prevent the code from running because of an incorrect syntax such as a missing semicolon at the end of a statement or a missing bracket, class not found, etc. These errors are detected by the java compiler and an error message is displayed on the screen while compiling. Compile Time Errors are sometimes also referred to as Syntax errors. These kind of errors are easy to spot and rectify because the java compiler finds them for you. The compiler will tell you which piece of code in the program got in trouble and its best guess as to what you did wrong. Usually, the compiler indicates the exact line where the error is, or sometimes the line just before it, however, if the problem is with incorrectly nested braces, the actual error may be at the beginning of the block. In effect, syntax errors represent grammatical errors in the use of the programming language. 

Example 1: Misspelled variable name or method names 

Java

class MisspelledVar {

    public static void main(String args[])

    {

        int a = 40, b = 60;

        int Sum = a + b;

        System.out.println(

            "Sum of variables is "

            + sum);

    }

}

Compilation Error in java code:

prog.java:14: error: cannot find symbol
            + sum);
              ^
  symbol:   variable sum
  location: class MisspelledVar
1 error

Example 2: Missing semicolons 

Java

class PrintingSentence {

    public static void main(String args[])

    {

        String s = "GeeksforGeeks";

        System.out.println("Welcome to " + s)

    }

}

Compilation Error in java code:

prog.java:8: error: ';' expected
        System.out.println("Welcome to " + s)
                                             ^
1 error

Example: Missing parenthesis, square brackets, or curly braces 

Java

class MissingParenthesis {

    public static void main(String args[])

    {

        System.out.println("Printing 1 to 5 n");

        int i;

        for (i = 1; i <= 5; i++ {

            System.out.println(i + "n");

        }

    }

}

Compilation Error in java code:

prog.java:10: error: ')' expected
        for (i = 1; i <= 5; i++ {
                               ^
1 error

Example: Incorrect format of selection statements or loops 

Java

class IncorrectLoop {

    public static void main(String args[])

    {

        System.out.println("Multiplication Table of 7");

        int a = 7, ans;

        int i;

        for (i = 1, i <= 10; i++) {

            ans = a * i;

            System.out.println(ans + "n");

        }

    }

}

Compilation Error in java code:

prog.java:12: error: not a statement
        for (i = 1, i <= 10; i++) {
                      ^
prog.java:12: error: ';' expected
        for (i = 1, i <= 10; i++) {
                                ^
2 errors

Logical Error: A logic error is when your program compiles and executes, but does the wrong thing or returns an incorrect result or no output when it should be returning an output. These errors are detected neither by the compiler nor by JVM. The Java system has no idea what your program is supposed to do, so it provides no additional information to help you find the error. Logical errors are also called Semantic Errors. These errors are caused due to an incorrect idea or concept used by a programmer while coding. Syntax errors are grammatical errors whereas, logical errors are errors arising out of an incorrect meaning. For example, if a programmer accidentally adds two variables when he or she meant to divide them, the program will give no error and will execute successfully but with an incorrect result. 

Example: Accidentally using an incorrect operator on the variables to perform an operation (Using ‘/’ operator to get the modulus instead using ‘%’) 

Java

public class LErrorDemo {

    public static void main(String[] args)

    {

        int num = 789;

        int reversednum = 0;

        int remainder;

        while (num != 0) {

            remainder = num / 10;

            reversednum

                = reversednum * 10

                  + remainder;

            num /= 10;

        }

        System.out.println("Reversed number is "

                           + reversednum);

    }

}

Output:

Reversed number is 7870

Example: Displaying the wrong message 

Java

class IncorrectMessage {

    public static void main(String args[])

    {

        int a = 2, b = 8, c = 6;

        System.out.println(

            "Finding the largest number n");

        if (a > b && a > c)

            System.out.println(

                a + " is the largest Number");

        else if (b > a && b > c)

            System.out.println(

                b + " is the smallest Number");

        else

            System.out.println(

                c + " is the largest Number");

    }

}

Output:

Finding the largest number 

8 is the smallest Number

Syntax Error:

Syntax and Logical errors are faced by Programmers.

Spelling or grammatical mistakes are syntax errors, for example, using an uninitialized variable, using an undefined variable, etc., missing a semicolon, etc.

int x, y;
x = 10 // missing semicolon (;)
z = x + y; // z is undefined, y in uninitialized.

Syntax errors can be removed with the help of the compiler.

Last Updated :
08 Jun, 2022

Like Article

Save Article

Error is an illegal operation performed by the user which results in the abnormal working of the program. Programming errors often remain undetected until the program is compiled or executed. Some of the errors inhibit the program from getting compiled or executed. Thus errors should be removed before compiling and executing. 

The most common errors can be broadly classified as follows:

1. Run Time Error: 

Run Time errors occur or we can say, are detected during the execution of the program. Sometimes these are discovered when the user enters an invalid data or data which is not relevant. Runtime errors occur when a program does not contain any syntax errors but asks the computer to do something that the computer is unable to reliably do. During compilation, the compiler has no technique to detect these kinds of errors. It is the JVM (Java Virtual Machine) that detects it while the program is running. To handle the error during the run time we can put our error code inside the try block and catch the error inside the catch block. 

For example: if the user inputs a data of string format when the computer is expecting an integer, there will be a runtime error. Example 1: Runtime Error caused by dividing by zero 

class DivByZero {

    public static void main(String args[])

    {

        int var1 = 15;

        int var2 = 5;

        int var3 = 0;

        int ans1 = var1 / var2;

        int ans2 = var1 / var3;

        System.out.println(

            "Division of va1"

            + " by var2 is: "

            + ans1);

        System.out.println(

            "Division of va1"

            + " by var3 is: "

            + ans2);

    }

}

Runtime Error in java code:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at DivByZero.main(File.java:14)

Example 2: Runtime Error caused by Assigning/Retrieving Value from an array using an index which is greater than the size of the array 

Java

class RTErrorDemo {

    public static void main(String args[])

    {

        int arr[] = new int[5];

        arr[9] = 250;

        System.out.println("Value assigned! ");

    }

}

RunTime Error in java code:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
    at RTErrorDemo.main(File.java:10)

2. Compile Time Error: 

Compile Time Errors are those errors which prevent the code from running because of an incorrect syntax such as a missing semicolon at the end of a statement or a missing bracket, class not found, etc. These errors are detected by the java compiler and an error message is displayed on the screen while compiling. Compile Time Errors are sometimes also referred to as Syntax errors. These kind of errors are easy to spot and rectify because the java compiler finds them for you. The compiler will tell you which piece of code in the program got in trouble and its best guess as to what you did wrong. Usually, the compiler indicates the exact line where the error is, or sometimes the line just before it, however, if the problem is with incorrectly nested braces, the actual error may be at the beginning of the block. In effect, syntax errors represent grammatical errors in the use of the programming language. 

Example 1: Misspelled variable name or method names 

Java

class MisspelledVar {

    public static void main(String args[])

    {

        int a = 40, b = 60;

        int Sum = a + b;

        System.out.println(

            "Sum of variables is "

            + sum);

    }

}

Compilation Error in java code:

prog.java:14: error: cannot find symbol
            + sum);
              ^
  symbol:   variable sum
  location: class MisspelledVar
1 error

Example 2: Missing semicolons 

Java

class PrintingSentence {

    public static void main(String args[])

    {

        String s = "GeeksforGeeks";

        System.out.println("Welcome to " + s)

    }

}

Compilation Error in java code:

prog.java:8: error: ';' expected
        System.out.println("Welcome to " + s)
                                             ^
1 error

Example: Missing parenthesis, square brackets, or curly braces 

Java

class MissingParenthesis {

    public static void main(String args[])

    {

        System.out.println("Printing 1 to 5 n");

        int i;

        for (i = 1; i <= 5; i++ {

            System.out.println(i + "n");

        }

    }

}

Compilation Error in java code:

prog.java:10: error: ')' expected
        for (i = 1; i <= 5; i++ {
                               ^
1 error

Example: Incorrect format of selection statements or loops 

Java

class IncorrectLoop {

    public static void main(String args[])

    {

        System.out.println("Multiplication Table of 7");

        int a = 7, ans;

        int i;

        for (i = 1, i <= 10; i++) {

            ans = a * i;

            System.out.println(ans + "n");

        }

    }

}

Compilation Error in java code:

prog.java:12: error: not a statement
        for (i = 1, i <= 10; i++) {
                      ^
prog.java:12: error: ';' expected
        for (i = 1, i <= 10; i++) {
                                ^
2 errors

Logical Error: A logic error is when your program compiles and executes, but does the wrong thing or returns an incorrect result or no output when it should be returning an output. These errors are detected neither by the compiler nor by JVM. The Java system has no idea what your program is supposed to do, so it provides no additional information to help you find the error. Logical errors are also called Semantic Errors. These errors are caused due to an incorrect idea or concept used by a programmer while coding. Syntax errors are grammatical errors whereas, logical errors are errors arising out of an incorrect meaning. For example, if a programmer accidentally adds two variables when he or she meant to divide them, the program will give no error and will execute successfully but with an incorrect result. 

Example: Accidentally using an incorrect operator on the variables to perform an operation (Using ‘/’ operator to get the modulus instead using ‘%’) 

Java

public class LErrorDemo {

    public static void main(String[] args)

    {

        int num = 789;

        int reversednum = 0;

        int remainder;

        while (num != 0) {

            remainder = num / 10;

            reversednum

                = reversednum * 10

                  + remainder;

            num /= 10;

        }

        System.out.println("Reversed number is "

                           + reversednum);

    }

}

Output:

Reversed number is 7870

Example: Displaying the wrong message 

Java

class IncorrectMessage {

    public static void main(String args[])

    {

        int a = 2, b = 8, c = 6;

        System.out.println(

            "Finding the largest number n");

        if (a > b && a > c)

            System.out.println(

                a + " is the largest Number");

        else if (b > a && b > c)

            System.out.println(

                b + " is the smallest Number");

        else

            System.out.println(

                c + " is the largest Number");

    }

}

Output:

Finding the largest number 

8 is the smallest Number

Syntax Error:

Syntax and Logical errors are faced by Programmers.

Spelling or grammatical mistakes are syntax errors, for example, using an uninitialized variable, using an undefined variable, etc., missing a semicolon, etc.

int x, y;
x = 10 // missing semicolon (;)
z = x + y; // z is undefined, y in uninitialized.

Syntax errors can be removed with the help of the compiler.

Error is an illegal operation performed by the user which results in the abnormal working of the program. Programming errors often remain undetected until the program is compiled or executed. Some of the errors inhibit the program from getting compiled or executed. Thus errors should be removed before compiling and executing. 

The most common errors can be broadly classified as follows:

1. Run Time Error: 

Run Time errors occur or we can say, are detected during the execution of the program. Sometimes these are discovered when the user enters an invalid data or data which is not relevant. Runtime errors occur when a program does not contain any syntax errors but asks the computer to do something that the computer is unable to reliably do. During compilation, the compiler has no technique to detect these kinds of errors. It is the JVM (Java Virtual Machine) that detects it while the program is running. To handle the error during the run time we can put our error code inside the try block and catch the error inside the catch block. 

For example: if the user inputs a data of string format when the computer is expecting an integer, there will be a runtime error. Example 1: Runtime Error caused by dividing by zero 

Java

class DivByZero {

    public static void main(String args[])

    {

        int var1 = 15;

        int var2 = 5;

        int var3 = 0;

        int ans1 = var1 / var2;

        int ans2 = var1 / var3;

        System.out.println(

            "Division of va1"

            + " by var2 is: "

            + ans1);

        System.out.println(

            "Division of va1"

            + " by var3 is: "

            + ans2);

    }

}

Runtime Error in java code:

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at DivByZero.main(File.java:14)

Example 2: Runtime Error caused by Assigning/Retrieving Value from an array using an index which is greater than the size of the array 

Java

class RTErrorDemo {

    public static void main(String args[])

    {

        int arr[] = new int[5];

        arr[9] = 250;

        System.out.println("Value assigned! ");

    }

}

RunTime Error in java code:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
    at RTErrorDemo.main(File.java:10)

2. Compile Time Error: 

Compile Time Errors are those errors which prevent the code from running because of an incorrect syntax such as a missing semicolon at the end of a statement or a missing bracket, class not found, etc. These errors are detected by the java compiler and an error message is displayed on the screen while compiling. Compile Time Errors are sometimes also referred to as Syntax errors. These kind of errors are easy to spot and rectify because the java compiler finds them for you. The compiler will tell you which piece of code in the program got in trouble and its best guess as to what you did wrong. Usually, the compiler indicates the exact line where the error is, or sometimes the line just before it, however, if the problem is with incorrectly nested braces, the actual error may be at the beginning of the block. In effect, syntax errors represent grammatical errors in the use of the programming language. 

Example 1: Misspelled variable name or method names 

Java

class MisspelledVar {

    public static void main(String args[])

    {

        int a = 40, b = 60;

        int Sum = a + b;

        System.out.println(

            "Sum of variables is "

            + sum);

    }

}

Compilation Error in java code:

prog.java:14: error: cannot find symbol
            + sum);
              ^
  symbol:   variable sum
  location: class MisspelledVar
1 error

Example 2: Missing semicolons 

Java

class PrintingSentence {

    public static void main(String args[])

    {

        String s = "GeeksforGeeks";

        System.out.println("Welcome to " + s)

    }

}

Compilation Error in java code:

prog.java:8: error: ';' expected
        System.out.println("Welcome to " + s)
                                             ^
1 error

Example: Missing parenthesis, square brackets, or curly braces 

Java

class MissingParenthesis {

    public static void main(String args[])

    {

        System.out.println("Printing 1 to 5 n");

        int i;

        for (i = 1; i <= 5; i++ {

            System.out.println(i + "n");

        }

    }

}

Compilation Error in java code:

prog.java:10: error: ')' expected
        for (i = 1; i <= 5; i++ {
                               ^
1 error

Example: Incorrect format of selection statements or loops 

Java

class IncorrectLoop {

    public static void main(String args[])

    {

        System.out.println("Multiplication Table of 7");

        int a = 7, ans;

        int i;

        for (i = 1, i <= 10; i++) {

            ans = a * i;

            System.out.println(ans + "n");

        }

    }

}

Compilation Error in java code:

prog.java:12: error: not a statement
        for (i = 1, i <= 10; i++) {
                      ^
prog.java:12: error: ';' expected
        for (i = 1, i <= 10; i++) {
                                ^
2 errors

Logical Error: A logic error is when your program compiles and executes, but does the wrong thing or returns an incorrect result or no output when it should be returning an output. These errors are detected neither by the compiler nor by JVM. The Java system has no idea what your program is supposed to do, so it provides no additional information to help you find the error. Logical errors are also called Semantic Errors. These errors are caused due to an incorrect idea or concept used by a programmer while coding. Syntax errors are grammatical errors whereas, logical errors are errors arising out of an incorrect meaning. For example, if a programmer accidentally adds two variables when he or she meant to divide them, the program will give no error and will execute successfully but with an incorrect result. 

Example: Accidentally using an incorrect operator on the variables to perform an operation (Using ‘/’ operator to get the modulus instead using ‘%’) 

Java

public class LErrorDemo {

    public static void main(String[] args)

    {

        int num = 789;

        int reversednum = 0;

        int remainder;

        while (num != 0) {

            remainder = num / 10;

            reversednum

                = reversednum * 10

                  + remainder;

            num /= 10;

        }

        System.out.println("Reversed number is "

                           + reversednum);

    }

}

Output:

Reversed number is 7870

Example: Displaying the wrong message 

Java

class IncorrectMessage {

    public static void main(String args[])

    {

        int a = 2, b = 8, c = 6;

        System.out.println(

            "Finding the largest number n");

        if (a > b && a > c)

            System.out.println(

                a + " is the largest Number");

        else if (b > a && b > c)

            System.out.println(

                b + " is the smallest Number");

        else

            System.out.println(

                c + " is the largest Number");

    }

}

Output:

Finding the largest number 

8 is the smallest Number

Syntax Error:

Syntax and Logical errors are faced by Programmers.

Spelling or grammatical mistakes are syntax errors, for example, using an uninitialized variable, using an undefined variable, etc., missing a semicolon, etc.

int x, y;
x = 10 // missing semicolon (;)
z = x + y; // z is undefined, y in uninitialized.

Syntax errors can be removed with the help of the compiler.

Чтобы разобраться, в чем разница между ошибками времени компиляции и ошибками времени выполнения в Java, разберемся в сути каждого вида.

Ошибки времени компиляции

Это синтаксические ошибки в коде, которые препятствуют его компиляции.

Пример

public class Test{
   public static void main(String args[]){
      System.out.println("Hello")
   }
}

Итог

C:Sample>Javac Test.java
Test.java:3: error: ';' expected
   System.out.println("Hello")

Ошибки времени выполнения

Исключение (или исключительное событие) – это проблема, возникающая во время выполнения программы. Когда возникает исключение, нормальный поток программы прерывается, и программа / приложение прерывается ненормально, что не рекомендуется, поэтому эти исключения должны быть обработаны.

Пример

import java.io.File;
import java.io.FileReader;

public class FilenotFound_Demo {
   public static void main(String args[]) {
      File file = new File("E://file.txt");
      FileReader fr = new FileReader(file);
   }
}

Итог

C:>javac FilenotFound_Demo.java
FilenotFound_Demo.java:8: error: unreported exception
FileNotFoundException; must be caught or declared to be thrown
   FileReader fr = new FileReader(file);
                   ^
1 error

1. Чтобы различать ошибки времени компиляции и ошибки времени выполнения, вы должны сначала понять, что такое компиляция? Что работает?
Сначала взгляните на эту картинку:

Период компиляции — это процесс передачи исходного кода Java, который мы написали компилятору для выполнения.переводРоль этого процесса в основномПроверьте синтаксис исходного кода Java, Если нет синтаксических ошибок, скомпилируйте исходный код в файл байт-кода (т.е. файл класса)
Среда выполнения — это процесс загрузки файла байт-кода (файла .class) в память и передачи его на виртуальную машину Java до конца выполнения программы.Проверьте логические ошибки программыЕсли логической ошибки нет, функция программы реализуется и результат выводится.
2. Различия в распределении памяти между компиляцией и временем выполнения
time Время компиляции — только для генерации некоторой оперативной памяти управляющей программы в файле байт-кода программы.инструкцияПростоKnowРазмер выделения памяти и место хранения,Нет конкретной операции выделения
② Время выполнения — это памятьРеальное распределениеОпределите память, выделенную программойразмерИ эти переменные должны храниться в памятирасположение
3. При разработке java-проекта в Eclipse, как отличить ошибку компиляции от ошибки времени выполнения?
errors Ошибки компиляции обычно относятся к синтаксическим ошибкам или очевидным логическим ошибкам.
Например: отсутствие точки с запятой, меньше скобок, неправильное написание ключевых слов и т. д., часто рисуют красные линии в затмении.
error Ошибка операции — это логическая ошибка, сгенерированная после запуска на основе ошибки компиляции.
Например: исключение нулевого указателя, делитель 0, доступ за пределы допустимого и т. д., как правило, вызывает исключение.
4. Примеры
Следующая программа, отредактируйте и запустите, результат ()

public class Test{
           public void main(String[] args){
                      System.out.println("Hello world");
                      }
              }

Результат:Компилировать без ошибок, новремя выполненияПроизошло исключение.

  • 2023

Моя недотрога классное исполнение под гармонь

Моя недотрога классное исполнение под гармонь

Оглавление:

  • отладка
  • Распространенные решения ошибок времени выполнения

Рассмотрим следующий сегмент кода Java, хранящийся в файле с именем JollyMessage.java:


// На экран выводится веселое сообщение! class Jollymessage {public static void main (String args) {// Написать сообщение в окно терминала System.out.println ("Ho Ho Ho!"); }}

При выполнении программы этот код выдаст сообщение об ошибке во время выполнения. Другими словами, где-то была допущена ошибка, но ошибка не будет выявлена, когда программа скомпилированный, только когда это бежать.

отладка

В приведенном выше примере обратите внимание, что класс называется «Jollymessage», тогда как имя файла называется JollyMessage.java.

Java чувствительна к регистру. Компилятор не будет жаловаться, потому что технически в коде нет ничего плохого. Он создаст файл класса, который точно соответствует имени класса (то есть Jollymessage.class). Когда вы запустите программу с именем JollyMessage, вы получите сообщение об ошибке, потому что нет файла с именем JollyMessage.class.

Ошибка, которую вы получаете при запуске программы с неправильным именем:


Исключение в потоке «main» java.lang.NoClassDefFoundError: JollyMessage (неправильное имя: JollyMessage)..

Распространенные решения ошибок времени выполнения

Если ваша программа успешно компилируется, но не выполняется, просмотрите код на наличие распространенных ошибок:

  • Несоответствие одинарных и двойных кавычек
  • Недостающие кавычки для строк
  • Неправильные операторы сравнения (например, не используются двойные знаки равенства для указания присваивания)
  • Ссылка на объекты, которые не существуют или не существуют, используя заглавные буквы, предоставленные в коде
  • Ссылка на объект, который не имеет свойств

Работа в интегрированных средах разработки, таких как Eclipse, может помочь вам избежать ошибок в стиле «опечатка».

Чтобы отлаживать производимые Java-программы, запустите отладчик вашего веб-браузера — вы должны увидеть шестнадцатеричное сообщение об ошибке, которое может помочь в определении конкретной причины проблемы.

В некоторых ситуациях проблема может заключаться не в вашем коде, а в вашей виртуальной машине Java. Если JVM задыхается, она может выкинуть ошибку времени выполнения, несмотря на отсутствие недостатка в кодовой базе программы. Сообщение отладчика браузера поможет изолировать код, вызванный ошибками, вызванными JVM.

Рассмотрим следующий сегмент кода Java, хранящийся в файле с именем JollyMessage.java:


// На экран выводится веселое сообщение! class Jollymessage {public static void main (String args) {// Написать сообщение в окно терминала System.out.println ("Ho Ho Ho!"); }}

При выполнении программы этот код выдаст сообщение об ошибке во время выполнения. Другими словами, где-то была допущена ошибка, но ошибка не будет выявлена, когда программа скомпилированный, только когда это бежать.

отладка

В приведенном выше примере обратите внимание, что класс называется «Jollymessage», тогда как имя файла называется JollyMessage.java.

Java чувствительна к регистру. Компилятор не будет жаловаться, потому что технически в коде нет ничего плохого. Он создаст файл класса, который точно соответствует имени класса (то есть Jollymessage.class). Когда вы запустите программу с именем JollyMessage, вы получите сообщение об ошибке, потому что нет файла с именем JollyMessage.class.

Ошибка, которую вы получаете при запуске программы с неправильным именем:


Исключение в потоке «main» java.lang.NoClassDefFoundError: JollyMessage (неправильное имя: JollyMessage)..

Распространенные решения ошибок времени выполнения

Если ваша программа успешно компилируется, но не выполняется, просмотрите код на наличие распространенных ошибок:

  • Несоответствие одинарных и двойных кавычек
  • Недостающие кавычки для строк
  • Неправильные операторы сравнения (например, не используются двойные знаки равенства для указания присваивания)
  • Ссылка на объекты, которые не существуют или не существуют, используя заглавные буквы, предоставленные в коде
  • Ссылка на объект, который не имеет свойств

Работа в интегрированных средах разработки, таких как Eclipse, может помочь вам избежать ошибок в стиле «опечатка».

Чтобы отлаживать производимые Java-программы, запустите отладчик вашего веб-браузера — вы должны увидеть шестнадцатеричное сообщение об ошибке, которое может помочь в определении конкретной причины проблемы.

В некоторых ситуациях проблема может заключаться не в вашем коде, а в вашей виртуальной машине Java. Если JVM задыхается, она может выкинуть ошибку времени выполнения, несмотря на отсутствие недостатка в кодовой базе программы. Сообщение отладчика браузера поможет изолировать код, вызванный ошибками, вызванными JVM.

На чтение 2 мин. Просмотров 5 Опубликовано 25.05.2021

Рассмотрим следующий сегмент кода Java, хранящийся в файле с именем JollyMessage.java:

 
//На экран выводится веселое сообщение! 
class Jollymessage
{

public static void main (String [] args) {

//Записываем сообщение в окно терминала
System.out.println ("Ho Ho Ho!");

}
}

При выполнении программы этот код выдаст сообщение об ошибке выполнения. Другими словами, где-то была допущена ошибка, но ошибка не будет идентифицирована, когда программа скомпилирована , только когда она запущена .

Отладка

В приведенном выше примере обратите внимание, что класс называется «Jollymessage», а имя файла – JollyMessage.java .

Java чувствительна к регистру. Компилятор не будет жаловаться, потому что технически с кодом все в порядке. Он создаст файл класса, который точно соответствует имени класса (например, Jollymessage.class). Когда вы запустите программу под названием JollyMessage, вы получите сообщение об ошибке, потому что нет файла с именем JollyMessage.class.

Ошибка, которую вы получаете при запуске программа с неправильным именем:

 
 Исключение в потоке «main» java.lang.NoClassDefFoundError: JollyMessage (неверно  name: JollyMessage) .. 

Общие решения для ошибок во время выполнения

Если ваша программа успешно компилируется, но не выполняется, проверьте код для типичных ошибок:

  • Несоответствующие одинарные и двойные кавычки
  • Отсутствующие кавычки для строк
  • Неправильные операторы сравнения (например, отсутствие двойных знаков равенства для обозначения присваивания)
  • Ссылка на несуществующие или несуществующие объекты с использованием заглавных букв, указанных в коде
  • Ссылка на объект, не имеющий свойств

Работа в интегрированных средах разработки, таких как Eclipse, может помочь вам избежать Ошибки в стиле «опечатка».

Для отладки промышленных программ Java запустите отладчик веб-браузера – вы должны увидеть сообщение об ошибке в шестнадцатеричном формате, которое может помочь изолировать конкретная причина проблемы.

В некоторых ситуациях проблема может заключаться не в вашем коде, а в вашей виртуальной машине Java. Если JVM задыхается, она может выдать ошибку времени выполнения, несмотря на отсутствие недостатков в кодовой базе программы. Сообщение отладчика браузера поможет изолировать ошибки, вызванные кодом, от ошибок, вызванных JVM..

Ошибки времени выполнения, это общие ошибки, которые происходят, когда программа запущена. Ошибки могут возникать в любой исполняемой программе, в том числе Java приложениях. Ошибки Java runtime возникают, когда базовый код обнаруживает событие, которое он не может обрабатывать соответствующим образом. Ошибки Java runtime могут возникать, если программист допустил ошибку в коде.

Обновить версию Java

Одной из распространенных причин ошибок времени выполнения включает в себя Java версия установленная на вашем компьютере или версия поддерживается Java апплетом. Например, если апплет поддерживает старые версии Internet Explorer и у вас последняя версия Internet Explorer установлена в вашей системе, апплет может не работать надлежащим образом, и вы увидите ошибку “bad major version number” . Этот тип ошибок Java работает в обе стороны. Если вы ещё не обновили вашу версию Internet Explorer в течение нескольких лет и при запуске Java-апплета, который был разработан с использованием новейших edition Java runtime environment, скорее всего вы получите ошибку времени выполнения.

Прекратить отображение java-кода

Много ошибок времени выполнения в Java, которые вы видите, будут ошибками в общении с кодом, и Вы не сможете ничего сделать, чем сказать компьютеру, чтобы он прекратил отображение отладочной информации об ошибках. Ведь вы не дизайнер аплетов, поэтому Вы не можете зайти и изменить код. Чтобы отключить отладку на вашем компьютере, что бы он перестал отображать ошибки Java runtime, зайдите в Internet Explorer и выберите в меню » Инструменты». Нажмите кнопку Параметры интернета. Перейдите на вкладку «Дополнительно » и прокрутите вниз для просмотра раздела. Снимите флажок напротив следующих пунктов:

  • Отключить отладку сценариев (Internet Explorer)
  • Отключить отладку сценариев (другие)

Далее, снимите галочку (если таковые имеются) в следующих пунктах:

Показывать уведомление о каждой ошибке сценария

Список возможных возникающих ошибок Java runtime  может быть огромным, особенно если учесть все возможные ошибки программирования. Связанные с программированием ошибки могут быть проигнорированы отключив отладку скриптов в то время как появляются ошибки, связанные с несовместимостью между Java-апплетом и версией Java, которая у вас обычно установлена и решается путем обновления Java до последней версии. Конечно, если апплет требует старую версию Java, значит вам не повезло, если Вы не готовы понизить версию Java.

Включить Java

Одна заключительная вещь в ошибках Java, если вы знаете, какая версия  Java у вас установлена, но апплеты не запускаются, вам может потребоваться включить Java. В Internet Explorer перейдите к инструменты > Sun Java Console. Это позволит поставить значок в системном трее. Правой кнопкой мыши щёлкните на значке Java и выберите открыть Панель управления. Теперь перейдите на вкладку Дополнительно и разверните опцию с названием по умолчанию Java для браузеров. Установите флажок рядом с вашим браузером.

Ошибка времени выполнения будет возникать только тогда, когда код действительно запущен.
Это наиболее сложно — и привести к сбоям программы и ошибкам в вашем коде, которые трудно отследить.

В примере может потребоваться преобразовать строку: «hello» в целое число:

string helloWorld = "hello";
int willThrowRuntimeError = Convert.ToInt32(helloWorld);

Компилятор может не рассматривать это как проблему, но при запуске будет выведена ошибка.

Ошибки компилятора связаны с неточностями в коде, где компилятор выдает ошибку, чтобы предупредить вас о том, что не будет компилироваться и, следовательно, не может быть запущено.

Пример ошибки компилятора:

int = "this is not an int";

Надеюсь, что это поможет.

jwddixon
27 фев. 2012, в 22:09

Поделиться

Ошибка во время выполнения во время работы программы. Ошибка компилятора возникает при попытке скомпилировать код.

Если вы не можете скомпилировать свой код, это ошибка компилятора.

Если вы компилируете и запускаете свой код, но затем он не выполняется во время выполнения, это время выполнения.

James Montagne
27 фев. 2012, в 21:04

Поделиться

Ошибки времени компиляции относятся к синтаксису и семантике. Например, если вы выполняете операции с различными типами. Пример: добавление строки с int или деление строки на реальный. (прочитайте последний параграф!)

Ошибки времени выполнения — это те, которые обнаруживаются при выполнении программы. Например, деление на ноль. Компилятор не может знать, приведет ли операция x/a-b к делению на ноль до выполнения.

Это очень широкое объяснение. Существует много интеллектуальных компиляторов, а также возможность внутреннего кастинга между различными типами, что приводит к операциям, которые имеют смысл. Это возможно для предварительного компиляции кода и просмотра некоторых ошибок времени выполнения, даже если код не выполняется.

См. также эту ссылку: Время выполнения и время компиляции

Kani
27 фев. 2012, в 20:43

Поделиться

Ошибки времени компиляции — это ошибки синтаксиса и семантики.

Ошибки времени выполнения являются ошибками логики в первую очередь. Из-за чего-то, о котором забыл программист, программа вылетает, например. деление на 0, обращение к переменной без инициализации первой и т.д.

Hadi
08 июнь 2015, в 07:21

Поделиться

Ошибка компиляции означает, что компилятор знает, что discountVariable = saleVariable должен быть завершен с помощью двоеточия ниже discountVariable = saleVariable;, поэтому он будет вызывать ошибку при компиляции кода.

Ошибка времени выполнения означает, что ошибка будет возникать во время выполнения, потому что, даже если вы производите продажуVariable в discountVariable, бросок не может принимать, поскольку они различаются по типу.

CodeBlue
27 фев. 2012, в 20:52

Поделиться

Думаю, у вас уже есть общий смысл того, в чем разница. В частности, в коде, который вы указали в OP,

  • Во втором утверждении компилятор сравнивает типы на LHS и RHS и не обнаруживает, что имплицитное применение невозможно, поэтому оно дает ошибку.
  • первый оператор рассматривается как один и тот же, но здесь программист явно использует тип, который так же хорош, как компилятор, что я знаю, что я делаю, и, конечно, компилятор доверяет вам и не дает вам никаких ошибок.

Kashyap
27 фев. 2012, в 21:47

Поделиться

Потому что компилятор не знает тип объекта «saleVariable», пока это значение не было установлено, когда программа запущена.

Вы заставляете все, что есть в salesVariable, в тип DiscountSale, это считается небезопасным и не может быть оценено до времени выполнения.

bigamil
27 фев. 2012, в 20:56

Поделиться

Компиляция/время компиляции/синтаксис/семантические ошибки: Ошибки компиляции или компиляции возникают из-за ошибки ввода, если мы не следуем правильному синтаксису и семантике любого языка программирования, тогда компилируем время ошибки генерируются компилятором. Они не позволят вашей программе выполнять одну строку до тех пор, пока вы не удалите все синтаксические ошибки или пока не будете отлаживать ошибки времени компиляции.
Пример: Отсутствие точки с запятой в C или опечатки int как int.

Ошибки времени выполнения: Ошибки времени выполнения — это ошибки, возникающие при запуске программы. Эти типы ошибок приведут к тому, что ваша программа будет вести себя непредсказуемо или даже может убить вашу программу. Их часто называют исключениями.
Пример: предположим, что вы читаете файл, который не существует, приведет к ошибке выполнения.

Подробнее о ошибки программирования здесь

Pankaj Prakash
25 май 2015, в 05:39

Поделиться

Ошибки компилятора связаны с неточностями в коде, где компилятор выдает ошибку, чтобы предупредить вас о том, что не будет компилироваться и, следовательно, не может быть запущено.

Пример: — Метод загрузки

class OverloadingTest {
    void sum(int a, long b) {
        System.out.println("a method invoked");
    }

    void sum(long a, int b) {
        System.out.println("b method invoked");
    }

    public static void main(String args[]) {
        OverloadingTest obj = new OverloadingTest();
        obj.sum(200, 200);// now ambiguity
    }
}

Ошибки времени выполнения — это те, которые обнаруживаются при выполнении программы. Например, деление на ноль. Компилятор не может знать, приведет ли операция x/a-b к делению на ноль до выполнения

Nikhil Kumar
21 апр. 2015, в 09:39

Поделиться

Если вы используете Google, вы получите следующее:

Ошибка времени компиляции — это любой тип ошибки, который предотвращает компиляцию java-программы как синтаксическая ошибка, не найденный класс, неправильное имя файла для определенного класса, возможная потеря точности при смешивании разных типов данных Java и и так далее.

Ошибка времени выполнения означает ошибку, которая происходит, когда программа запущена. Чтобы справиться с такими ошибками, java определит Исключения. Исключения представляют собой объекты, представляющие собой ненормальное условие в потоке программы. Он может быть установлен или не установлен.

http://wiki.answers.com/Q/Difference_between_run_time_error_and_compile_time_error_in_java

user647772
27 фев. 2012, в 20:42

Поделиться

Ещё вопросы

  • 1Android: статус тревоги, как оригинальное приложение тревоги?
  • 1эффективная установка значений диапазона 1D в DataFrame (или ndarray) с логическим массивом
  • 0Как закрыть выпадающий список навигации после нажатия на навигационную ссылку
  • 1удаление / закрытие текущей вкладки
  • 0Миграция данных Doctrine и Mysql при изменении структуры таблицы
  • 0Заполните массив циклом for в JavaScript
  • 0Загрузка выпадающих значений для angularJS
  • 0Кластерная миграция NDB
  • 0Zurb Foundation Использование пространства по обе стороны от 12 колонок
  • 0Есть ли проблемы с производительностью, если моя таблица содержит более 200 столбцов в MySQL?
  • 1Как методы внутри класса обращаются к константным переменным класса?
  • 0Как получить значение из родительской родительской области?
  • 0CMyPrintDialog :: OnInitDialog () не вызывается в IE10
  • 0Делать функцию по нажатию кнопки
  • 1Highcharts, установить высоту легенды динамически
  • 1JSF 2.2 и Spring 4 и CDI на разных уровнях без потери функций Spring
  • 1Http получить запрос на веб-сервис не работает
  • 1Redux Form — заполнение начальных значений
  • 0Запрос установки папки диалога условно
  • 0AngularJS Невозможно отправить данные JSON в БД после добавления перенаправления
  • 0Не удается получить дату из поля ввода и превратить ее в объект даты в IE8
  • 1PhoneGap пример проекта Android не строит
  • 0Изменить внешний вид медиа fancyBox?
  • 0Добавление активного состояния по умолчанию для скользящего аккордеона li
  • 1Как напечатать числа в списке, которые меньше, чем переменная. питон
  • 1LWJGL — не работают списки отображения
  • 1Как в Kivy реализовать переход на новый экран через функцию?
  • 0Предоставление повторяемых «представлений» класса путем приведения родительского класса к ссылке на дочерний класс
  • 1Невозможно загрузить библиотеку native-hadoop для вашей платформы … с использованием встроенных классов java, где это применимо
  • 0Как получить тип содержимого файла
  • 0Как запретить просмотр кода сайта
  • 0Как показать формат даты и времени, например: 12 июля в 12:43
  • 0Как получить доступ к переменной метки в QMessageBoxPrivate при расширении класса QMessageBox?
  • 0ошибка: # 1242 — подзапрос возвращает более 1 строки
  • 0параллельное программирование с openMP
  • 0Push-уведомление в определенное время
  • 1Как правильно удалить отображаемые валюты в разных культурах и убрать конечные нули?
  • 1Как конвертировать юникод в запросе linq?
  • 0Ошибка начального тега
  • 0Правильная сортировка дат с использованием TableSorter и <div> s
  • 1PongWebSocketFrame не поддерживается Internet Explorer
  • 0Изменить цвет div на основе значения цвета из JSON
  • 1OSGI HttpService не может быть правильно инициализирован / введен
  • 1Копировать сущность внутри ViewModel
  • 0Отображение картинки в браузере
  • 0Почему я не могу вызвать функцию при назначении $ scope в угловых?
  • 1Android AsyncTask Pub Sub to Context?
  • 0Вставьте UUID против UUID через триггер — Производительность
  • 0Как использовать перегрузку операторов в C ++ для отображения класса (игровое поле)
  • 1Entity Framework 6 Переключение между поставщиками БД

Ошибки во время выполнения :

  • Ошибка выполнения в программе — это ошибка, которая возникает во время работы программы после успешной компиляции.
  • Ошибки времени выполнения обычно называются «ошибками» и часто обнаруживаются в процессе отладки перед выпуском программного обеспечения.
  • Когда ошибки времени выполнения возникают после того, как программа была распространена среди общественности, разработчики часто выпускают исправления или небольшие обновления, предназначенные для исправления ошибок.
  • Любой желающий может найти в этой статье список проблем, с которыми он может столкнуться, если он новичок.
  • При решении проблем на онлайн-платформах можно встретить множество ошибок времени выполнения, которые четко не указаны в сообщении, которое приходит с ними. Существует множество ошибок времени выполнения, таких как логические ошибки , ошибки ввода / вывода, ошибки неопределенного объекта, ошибки деления на ноль и многие другие.

Типы ошибок времени выполнения :

  • SIGFPE: SIGFPE — ошибка с плавающей запятой. Это практически всегда вызвано делением на 0 . В основном могут быть три основные причины ошибки SIGFPE, описанные ниже:
    1. Деление на ноль.
    2. Операция по модулю по нулю.
    3. Целочисленное переполнение.

    Ниже приведена программа, иллюстрирующая ошибку SIGFPE:

    C ++

    #include <iostream>

    using namespace std;

    int main()

    {

    int a = 5;

    cout << a / 0;

    return 0;

    }

    Выход:

  • SIGABRT: это сама ошибка, обнаруженная программой, тогда этот сигнал генерируется с использованием вызова функции abort (). Этот сигнал также используется стандартной библиотекой для сообщения о внутренней ошибке. Функция assert () в C ++ также использует abort () для генерации этого сигнала.

    Ниже приведена программа, иллюстрирующая ошибку SIGBRT:

    C ++

    #include <iostream>

    using namespace std;

    int main()

    {

    int a = 100000000000;

    int * arr = new int [a];

    return 0;

    }

    Выход:

  • NZEC: эта ошибка обозначает «Ненулевой код выхода» . Для пользователей C эта ошибка будет сгенерирована, если метод main () не имеет оператора return 0 . Пользователи Java / C ++ могут сгенерировать эту ошибку, если вызовут исключение. Ниже приведены возможные причины появления ошибки NZEC:
    1. Бесконечная рекурсия или если у вас закончилась память стека.
    2. Доступ к отрицательному индексу массива.
    3. ArrayIndexOutOfBounds Exception.
    4. Исключение StringIndexOutOfBounds.

    Ниже приведена программа, иллюстрирующая ошибку NZEC:

    Python

    if __name__ = = "__main__" :

    arr = [ 1 , 2 ]

    print (arr[ 2 ])

    Выход:

  • SIGSEGV: эта ошибка является наиболее частой и известна как «ошибка сегментации». Он генерируется, когда программа пытается получить доступ к памяти, доступ к которой не разрешен, или пытается получить доступ к области памяти недопустимым способом. Список некоторых из распространенных причин ошибок сегментации:
    1. Доступ к массиву вне пределов.
    2. Разыменование указателей NULL.
    3. Разыменование освобожденной памяти.
    4. Разыменование неинициализированных указателей.
    5. Неправильное использование операторов «&» (адрес) и «*» (разыменование).
    6. Неправильные спецификаторы форматирования в операторах printf и scanf.
    7. Переполнение стека.
    8. Запись в постоянную память.

    Ниже приведена программа, иллюстрирующая ошибку SIGSEGV:

    C ++

    #include <bits/stdc++.h>

    using namespace std;

    void infiniteRecur( int a)

    {

    return infiniteRecur(a);

    }

    int main()

    {

    infiniteRecur(5);

    }

    Выход:

Способы избежать ошибок во время выполнения :

  • Избегайте использования переменных, которые не были инициализированы. В вашей системе они могут быть установлены на 0 , но не на платформе кодирования.
  • Проверяйте каждое вхождение элемента массива и убедитесь, что он не выходит за границы.
  • Не объявляйте слишком много памяти. Проверьте ограничение памяти, указанное в вопросе.
  • Избегайте объявления слишком большого объема памяти стека. Большие массивы следует объявлять глобально вне функции.
  • Используйте return в качестве конечного оператора.
  • Избегайте ссылок на свободную память или нулевые указатели.

Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по доступной для студентов цене и будьте готовы к работе в отрасли. Получите все важные математические концепции для соревновательного программирования с курсом Essential Maths for CP по доступной для студентов цене.

Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.

A runtime error in Java is an application error that occurs during the execution of a program. A runtime error occurs when a program is syntactically correct but contains an issue that is only detected during program execution. These issues cannot be caught at compile-time by the Java compiler and are only detected by the Java Virtual Machine (JVM) when the application is running.

Runtime errors are a category of exception that contains several more specific error types. Some of the most common types of runtime errors are:

  • IO errors
  • Division by zero errors
  • Out of range errors
  • Undefined object errors

Runtime Errors vs Compile-Time Errors

Compile-time errors occur when there are syntactical issues present in application code, for example, missing semicolons or parentheses, misspelled keywords or usage of undeclared variables.

These syntax errors are detected by the Java compiler at compile-time and an error message is displayed on the screen. The compiler prevents the code from being executed until the error is fixed. Therefore, these errors must be addressed by debugging before the program can be successfully run.

On the other hand, runtime errors occur during program execution (the interpretation phase), after compilation has taken place. Any code that throws a runtime error is therefore syntactically correct.

Runtime Errors vs Logical Errors

A runtime error could potentially be a legitimate issue in code, for example, incorrectly formatted input data or lack of resources (e.g. insufficient memory or disk space). When a runtime error occurs in Java, the compiler specifies the lines of code where the error is encountered. This information can be used to trace back where the problem originated.

On the other hand, a logical error is always the symptom of a bug in application code leading to incorrect output e.g. subtracting two variables instead of adding them. In case of a logical error, the program operates incorrectly but does not terminate abnormally. Each statement may need to be checked to identify a logical error, which makes it generally harder to debug than a runtime error.

What Causes Runtime Errors in Java

The most common causes of runtime errors in Java are:

  • Dividing a number by zero.
  • Accessing an element in an array that is out of range.
  • Attempting to store an incompatible type value to a collection.
  • Passing an invalid argument to a method.
  • Attempting to convert an invalid string to a number.
  • Insufficient space in memory for thread data.

When any such errors are encountered, the Java compiler generates an error message and terminates the program abnormally. Runtime errors don’t need to be explicitly caught and handled in code. However, it may be useful to catch them and continue program execution.

To handle a runtime error, the code can be placed within a try-catch block and the error can be caught inside the catch block.

Runtime Error Examples

Division by zero error

Here is an example of a java.lang.ArithmeticException, a type of runtime exception, thrown due to division by zero:

public class ArithmeticExceptionExample {
public static void main(String[] args) {
          int a = 10, b = 0;
          System.out.println("Result: "+ a/b);
    }
}

In this example, an integer a is attempted to be divided by another integer b, whose value is zero, leading to a java.lang.ArithmeticException:

Exception in thread "main" java.lang.ArithmeticException: / by zero
        at ArithmeticExceptionExample.main(ArithmeticExceptionExample.java:4)

Accessing an out of range value in an array

Here is an example of a java.lang.ArrayIndexOutOfBoundsExceptionthrown due to an attempt to access an element in an array that is out of bounds:

public class ValueOutOfRangeErrorExample {
    public static void main(String[] args) {
        int arr[] = new int[5];
        System.out.println("5th element in array: " + arr[5]);
    }
}

In this example, an array is initialized with 5 elements. An element at position 5 is later attempted to be accessed in the array, which does not exist, leading to a java.lang.ArrayIndexOutOfBoundsException runtime error:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
    at ValueOutOfRangeErrorExample.main(ValueOutOfRangeErrorExample.java:4)

How to Solve Runtime Errors

Runtime errors can be handled in Java using try-catch blocks with the following steps:

  • Surround the statements that can throw a runtime error in try-catch blocks.
  • Catch the error.
  • Depending on the requirements of the application, take necessary action. For example, log the exception with an appropriate message.

To illustrate this, the code in the earlier ArithmeticException example can be updated with the above steps:

public class ArithmeticExceptionExample {
    public static void main(String[] args) {
        try {
            int a = 10, b = 0;
            System.out.println("Result: " + a/b);
        } catch (ArithmeticException ae) {
            System.out.println("Arithmetic Exception: cannot divide by 0");
        }
        System.out.println("Continuing execution...");
    }
}

Surrounding the code in try-catch blocks like the above allows the program to continue execution after the exception is encountered:

Arithmetic Exception: cannot divide by 0
Continuing execution…

Runtime errors can be avoided where possible by paying attention to detail and making sure all statements in code are mathematically and logically correct.

Track, Analyze and Manage Errors With Rollbar

![Rollbar in action](https://rollbar.com/wp-content/uploads/2022/04/section-1-real-time-errors@2x-1-300×202.png)

Managing errors and exceptions in your code is challenging. It can make deploying production code an unnerving experience. Being able to track, analyze, and manage errors in real-time can help you to proceed with more confidence. Rollbar automates error monitoring and triaging, making fixing errors easier than ever. Try it today.

  • 2023

Моя недотрога классное исполнение под гармонь

Моя недотрога классное исполнение под гармонь

Оглавление:

  • отладка
  • Распространенные решения ошибок времени выполнения

Рассмотрим следующий сегмент кода Java, хранящийся в файле с именем JollyMessage.java:


// На экран выводится веселое сообщение! class Jollymessage {public static void main (String args) {// Написать сообщение в окно терминала System.out.println ("Ho Ho Ho!"); }}

При выполнении программы этот код выдаст сообщение об ошибке во время выполнения. Другими словами, где-то была допущена ошибка, но ошибка не будет выявлена, когда программа скомпилированный, только когда это бежать.

отладка

В приведенном выше примере обратите внимание, что класс называется «Jollymessage», тогда как имя файла называется JollyMessage.java.

Java чувствительна к регистру. Компилятор не будет жаловаться, потому что технически в коде нет ничего плохого. Он создаст файл класса, который точно соответствует имени класса (то есть Jollymessage.class). Когда вы запустите программу с именем JollyMessage, вы получите сообщение об ошибке, потому что нет файла с именем JollyMessage.class.

Ошибка, которую вы получаете при запуске программы с неправильным именем:


Исключение в потоке «main» java.lang.NoClassDefFoundError: JollyMessage (неправильное имя: JollyMessage)..

Распространенные решения ошибок времени выполнения

Если ваша программа успешно компилируется, но не выполняется, просмотрите код на наличие распространенных ошибок:

  • Несоответствие одинарных и двойных кавычек
  • Недостающие кавычки для строк
  • Неправильные операторы сравнения (например, не используются двойные знаки равенства для указания присваивания)
  • Ссылка на объекты, которые не существуют или не существуют, используя заглавные буквы, предоставленные в коде
  • Ссылка на объект, который не имеет свойств

Работа в интегрированных средах разработки, таких как Eclipse, может помочь вам избежать ошибок в стиле «опечатка».

Чтобы отлаживать производимые Java-программы, запустите отладчик вашего веб-браузера — вы должны увидеть шестнадцатеричное сообщение об ошибке, которое может помочь в определении конкретной причины проблемы.

В некоторых ситуациях проблема может заключаться не в вашем коде, а в вашей виртуальной машине Java. Если JVM задыхается, она может выкинуть ошибку времени выполнения, несмотря на отсутствие недостатка в кодовой базе программы. Сообщение отладчика браузера поможет изолировать код, вызванный ошибками, вызванными JVM.

Рассмотрим следующий сегмент кода Java, хранящийся в файле с именем JollyMessage.java:


// На экран выводится веселое сообщение! class Jollymessage {public static void main (String args) {// Написать сообщение в окно терминала System.out.println ("Ho Ho Ho!"); }}

При выполнении программы этот код выдаст сообщение об ошибке во время выполнения. Другими словами, где-то была допущена ошибка, но ошибка не будет выявлена, когда программа скомпилированный, только когда это бежать.

отладка

В приведенном выше примере обратите внимание, что класс называется «Jollymessage», тогда как имя файла называется JollyMessage.java.

Java чувствительна к регистру. Компилятор не будет жаловаться, потому что технически в коде нет ничего плохого. Он создаст файл класса, который точно соответствует имени класса (то есть Jollymessage.class). Когда вы запустите программу с именем JollyMessage, вы получите сообщение об ошибке, потому что нет файла с именем JollyMessage.class.

Ошибка, которую вы получаете при запуске программы с неправильным именем:


Исключение в потоке «main» java.lang.NoClassDefFoundError: JollyMessage (неправильное имя: JollyMessage)..

Распространенные решения ошибок времени выполнения

Если ваша программа успешно компилируется, но не выполняется, просмотрите код на наличие распространенных ошибок:

  • Несоответствие одинарных и двойных кавычек
  • Недостающие кавычки для строк
  • Неправильные операторы сравнения (например, не используются двойные знаки равенства для указания присваивания)
  • Ссылка на объекты, которые не существуют или не существуют, используя заглавные буквы, предоставленные в коде
  • Ссылка на объект, который не имеет свойств

Работа в интегрированных средах разработки, таких как Eclipse, может помочь вам избежать ошибок в стиле «опечатка».

Чтобы отлаживать производимые Java-программы, запустите отладчик вашего веб-браузера — вы должны увидеть шестнадцатеричное сообщение об ошибке, которое может помочь в определении конкретной причины проблемы.

В некоторых ситуациях проблема может заключаться не в вашем коде, а в вашей виртуальной машине Java. Если JVM задыхается, она может выкинуть ошибку времени выполнения, несмотря на отсутствие недостатка в кодовой базе программы. Сообщение отладчика браузера поможет изолировать код, вызванный ошибками, вызванными JVM.

Понравилась статья? Поделить с друзьями:
  • Ошибка геолокации на андроид как исправить
  • Ошибка выхлопных газов даф 105
  • Ошибка выгрузки таблицы номенклатура ошибка 500
  • Ошибка во время извлечения данных
  • Ошибка гидротрансформатора ниссан кашкай