Reputation: 8191
In particular, is there a standard Exception
subclass used in these circumstances?
Upvotes: 435
Views: 257899
Reputation: 116304
From the Java documentation:
Thrown to indicate that the requested operation is not supported.
Example usage:
throw new UnsupportedOperationException("Feature incomplete. Contact assistance.");
Upvotes: 588
Reputation: 18865
If you want more granularity and better description, you could use NotImplementedException
from commons-lang
Warning: Available before versions 2.6 and after versions 3.2 only.
Upvotes: 16
Reputation: 45465
The below Calculator
sample class shows the difference
public class Calculator() {
int add(int a , int b){
return a+b;
}
int dived(int a , int b){
if ( b == 0 ) {
throw new UnsupportedOperationException("I can not dived by zero,
not now not for the rest of my life!")
}else{
return a/b;
}
}
int multiple(int a , int b){
//NotImplementedException from apache or some custom excpetion
throw new NotImplementedException("Will be implement in release 3.5");
}
}
Upvotes: 7
Reputation: 16938
Differentiate between the two cases you named:
To indicate that the requested operation is not supported and most likely never will, throw an UnsupportedOperationException
.
To indicate the requested operation has not been implemented yet, choose between this:
Use the NotImplementedException
from apache commons-lang which was available in commons-lang2 and has been re-added to commons-lang3 in version 3.2.
Implement your own NotImplementedException
.
Throw an UnsupportedOperationException
with a message like "Not implemented, yet".
Upvotes: 261
Reputation: 54782
If you create a new (not yet implemented) function in NetBeans, then it generates a method body with the following statement:
throw new java.lang.UnsupportedOperationException("Not supported yet.");
Therefore, I recommend to use the UnsupportedOperationException.
Upvotes: 43