50 Common Java Errors and How to Avoid Them (Part 1)

There are many types of errors that could be encountered while developing Java software, but most are avoidable. We’ve rounded up 50 of the most common Java software errors, complete with code examples and tutorials to help you work around common coding problems.

For more tips and tricks for coding better Java programs, download our Comprehensive Java Developer’s Guide, which is jam-packed with everything you need to up your Java game – from tools to the best websites and blogs, YouTube channels, Twitter influencers, LinkedIn groups, podcasts, must-attend events, and more.

If you’re working with .NET, you should also check out our guide to the 50 most common .NET software errors and how to avoid them. But if your current challenges are Java-related, read on to learn about the most common issues and their workarounds.

Compiler Errors

Compiler error messages are created when the Java software code is run through the compiler. It is important to remember that a compiler may throw many error messages for one error. So fix the first error and recompile. That could solve many problems.

1. “… Expected”

This error occurs when something is missing from the code. Often this is created by a missing semicolon or closing parenthesis.

2. “Unclosed String Literal”

The “unclosed string literal” error message is created when the string literal ends without quotation marks, and the message will appear on the same line as the error. (@DreamInCode) A literal is a source code of a value.

3. “Illegal Start of an Expression”

There are numerous reasons why an “illegal start of an expression” error occurs. It ends up being one of the less-helpful error messages. Some developers say it’s caused by bad code.

Usually, expressions are created to produce a new value or assign a value to a variable. The compiler expects to find an expression and cannot find it because the syntax does not match expectations. (@StackOverflow) It is in these statements that the error can be found.

5. “Public Class XXX Should Be in File”

The “public class XXX should be in file” message occurs when the class XXX and the Java program filename do not match. The code will only be compiled when the class and Java file are the same. (@coderanch):

6. “Incompatible Types”

“Incompatible types” is an error in logic that occurs when an assignment statement tries to pair a variable with an expression of types. It often comes when the code tries to place a text string into an integer — or vice versa. This is not a Java syntax error. (@StackOverflow)

test.java:78: error: incompatibletypes

returnstringBuilder.toString();

^

required: int

found: String

1error

There really isn’t an easy fix when the compiler gives an “incompatible types” message:

9. “Missing Return Statement”

The “missing return statement” message occurs when a method does not have a return statement. Each method that returns a value (a non-void type) must have a statement that literally returns that value so it can be called outside the method.

publicString[] OpenFile() throwsIOException {

Map<String, Double>map=newHashMap();

FileReaderfr=newFileReader("money.txt");

BufferedReaderbr=newBufferedReader(fr);

try{

while (br.ready()){

Stringstr=br.readLine();

String[] list=str.split(" ");

System.out.println(list);

}

} catch (IOExceptione){

System.err.println("Error - IOException!");

}

}

There are a couple reasons why a compiler throws the “missing return statement” message:

A return statement was simply omitted by mistake.

The method did not return any value but type void was not declared in the method signature.

10. “Possible Loss of Precision”

“Possible loss of precision” occurs when more information is assigned to a variable than it can hold. If this happens, pieces will be thrown out. If this is fine, then the code needs to explicitly declare the variable as a new type.

A “possible loss of precision” error commonly occurs when:

Trying to assign a real number to a variable with an integer data type.

Next Time

Now that we’ve covered compiler errors, next time we’ll dive into the variety of runtime exceptions that might crop up to ruin your day. Just like this segment, they will include code blocks, explanations, and pertinent links to help fix your code as fast as possible.