Strange Socket Problem Solved!

K

Knute Johnson

I want to thank everybody that gave me ideas to help me find my problem
with my program. It turns out that the problem was bad data throwing a
RuntimeException in the thread, bringing it to a stop. I probably
should have programmed it with bad data in mind but I didn't. We had an
agreement on format and that was supposed to be that. I had some simple
format checks but no protection for the Exception.

I haven't seen the actual bad record yet but I put in traps for it and
will have the offender soon.

Thanks again everybody.
 
D

Daniel Pitts

I want to thank everybody that gave me ideas to help me find my problem
with my program. It turns out that the problem was bad data throwing a
RuntimeException in the thread, bringing it to a stop. I probably should
have programmed it with bad data in mind but I didn't. We had an
agreement on format and that was supposed to be that. I had some simple
format checks but no protection for the Exception.

I haven't seen the actual bad record yet but I put in traps for it and
will have the offender soon.

Thanks again everybody.
The lesson here should be that any "infinite loop" that you want to
truly be infinite should have a "catch RuntimeException" inside of it.
Unless you want an exception to end the loop. The nature of
RuntimeException is that you never know what downstream code is going to
throw it, and should be willing to handle it if you need to.

On the other hand, "Bad data" should probably through a checked
exception. I often try to differentiate checked vs unchecked as
"Something that I have no control of, but should be reported", vs
"Indication of a bug in the code." Of course, this isn't always the
case, but often should be.
 
K

Knute Johnson

The lesson here should be that any "infinite loop" that you want to
truly be infinite should have a "catch RuntimeException" inside of it.
Unless you want an exception to end the loop. The nature of
RuntimeException is that you never know what downstream code is going to
throw it, and should be willing to handle it if you need to.

On the other hand, "Bad data" should probably through a checked
exception. I often try to differentiate checked vs unchecked as
"Something that I have no control of, but should be reported", vs
"Indication of a bug in the code." Of course, this isn't always the
case, but often should be.

All true. It also shows how hard it is sometimes to diagnose a problem.
I was sure it was related to a Socket issue because it wouldn't
reconnect. I just didn't think through the problem of a
RuntimeException causing the thread to stop. And that was partly
because I didn't think the data was going to be the problem. We did the
data format design, the big giant heads talked to the other big giant
heads and they said the data will come in this format. Us pinheads
never planned for the data coming out of format. So there you go.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top