I saw the following in the downloaded CG correct solution: They put all the Reader/Writer object creations in try blocks. There were several try blocks. But there was not a single catch block anywhere. And the IO-objects were not closed with close() method. How does this thing work? Is it better this way than not using try blocks and closing the streams with the usual close() method? If yes, why?