IllegalStateException?
I've looked and looked for some good material on this exception, but I can't find anything helpful. I just don't understand it. It's suppose to be caught or thrown whenever a method is called when not suppose to be...But won't other exceptions be caught or thrown in it's place? If you have any comments or anything to say, please post!
server_crash
Postaholic
2,111 posts since Jun 2004
Reputation Points: 113
Solved Threads: 20
I know that, but I just don't undestand this exception. What is it for? I mean, when is a method called, but not suppose to be called?
server_crash
Postaholic
2,111 posts since Jun 2004
Reputation Points: 113
Solved Threads: 20
Think of calling a method to do a database query on a database that is closed.
Or calling a read method on a stream that's past the end of the data.
Or calling write methods on a readonly file.
Note that these won't throw IllegalStateException in Java but they could (they throw something more specific).
In general it's there to indicate you're trying to do something with an object that at that moment isn't possible to do with it.
jwenting
duckman
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
Note that these won't throw IllegalStateException in Java but they could (they throw something more specific).
This is what I was looking for. I was thinking this was the case,but wasn't sure. So I guess this means that this exception would have to be pretty high on the exception hierarchy?
server_crash
Postaholic
2,111 posts since Jun 2004
Reputation Points: 113
Solved Threads: 20
It is. But remember File et.al. typically throw IOExceptions which don't derive from IllegalStateException.
IllegalStateException is a RuntimeException, which is why you'll find few cases of it being explicitly caught (usually these are used to indicate programming errors rather than runtime problems, despite what their name suggests) while IOException is a regular Exception which requires catching at some point.
jwenting
duckman
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
So would it be called bad practice to throw one of these? I mean, couldn't it be almot considered as doing a catch-all-throw clause like throws Exception?
Have you ever seen this exception used before?
server_crash
Postaholic
2,111 posts since Jun 2004
Reputation Points: 113
Solved Threads: 20