I am currently studying for the SCJP certification using the Sierra and Bates Study Guide and in many of the self tests (mock exam questions) I keep running into the same problem - I can't tell whether a particular error will be at runtime (an exception) or at compile (compile error). I know this is a bit of a vague question and that it might not be possible to answer but, how can I tell if an error will be found at compile or at runtime? Would you be able to send me some website links that might be able to help me?
A compile-time error generally refers to the errors that correspond to the semantics or syntax. A runtime error refers to the error that we encounter during the code execution during runtime. We can easily fix a compile-time error during the development of code. A compiler cannot identify a runtime error.
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.
An Exception is an event that occurs during the program execution and disrupts the normal flow of the program's execution. Errors mostly happen at runtime, excepts Syntax errors which prevent the code from running. Whereas an Exception can occur at runtime as well as compile-time.
Runtime errors occur when something goes wrong in the normal execution of a program. When severe enough, these errors abruptly terminate an application. To help programmers both anticipate and recover from runtime errors, the Java programming language defines a special class named the RuntimeException.
Compile time error - the java compiler can't compile the code, often because of syntax errors. Typical candidates:
Runtime error - the code did compile, can be executed but crashes at some point, like you have a division by zero.
null
(may cause NullPointerException)('Crashes' is really not the correct term and is only used to illustrate what happens)
There is no easy answer to this; to see if something will compile, you have to completely understand the language specification and the API involved. You essentially have to act like a compiler, and no one can do this perfectly. Even compilers don't always follow the specification perfectly.
There are many, MANY corner cases in the Java language. This is why things like Java Puzzlers are so intriguing: people can't always tell if something would even compile and/or if it does, what's really going on.
Some of the more complicated areas of the Java language are:
javac
compiler can't even agree on everything)If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With