I'm trying to throw an exception in my code like this:
throw RuntimeException(msg);
But when I build in NetBeans I get this error:
C:\....java:50: cannot find symbol
symbol : method RuntimeException(java.lang.String)
location: class ...
throw RuntimeException(msg);
1 error
Do I need to import something? Am I misspelling it? I'm sure I must be doing something dumb :-(
This question is related to
java
exception-handling
runtimeexception
You need to create the instance of the RuntimeException, using new
the same way you would to create an instance of most other classes:
throw new RuntimeException(msg);
An Exception
is an Object
like any other in Java. You need to use the new
keyword to create a new Exception
before you can throw
it.
throw new RuntimeException();
Optionally you could also do the following:
RuntimeException e = new RuntimeException();
throw e;
Both code snippets are equivalent.
you will have to instantiate it before you throw it
throw new RuntimeException(arg0)
PS: Intrestingly enough the Netbeans IDE should have already pointed out that compile time error
throw new RuntimeException(msg);
unlike any other Exceptions I think RuntimeException is the only one that will not stall the program but it can still keep running and recover just print out a bunch of Exception lines? correct me if I am wrong.
using new keyword we always create a instance (new object) and throwing it , not called a method
throw new RuntimeException("Your Message");
You need the new in there. It's creating an instance and throwing it, not calling a method.
int no= new Scanner().nextInt(); // we crate an instance using new keyword and throwing it
using new keyword memory clean [because use and throw]
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//do your work here..
}
}, 1000);
As everyone else has said, instantiate the object before throwing it.
Just wanted to add one bit; it's incredibly uncommon to throw a RuntimeException. It would be normal for code in the API to throw a subclass of this, but normally, application code would throw Exception, or something that extends Exception but not RuntimeException.
And in retrospect, I missed adding the reason why you use Exception instead of RuntimeException; @Jay, in the comment below, added in the useful bit. RuntimeException isn't a checked exception;
throw new RuntimeException(msg); // notice the "new" keyword
Just for others: be sure it is new RuntimeException, not new RuntimeErrorException which needs error as an argument.
Source: Stackoverflow.com