I am getting this error, but I don't know what it means. I've copied the exercise straight off the example, but it won't compile. What am I doing wrong? I haven't learned about exceptions, yet so I'm not trying to throw any.
FileSave.java:12: error: unreported exception FileNotFoundException; must be caught or declared to be thrown
PrintWriter outputFile = new PrintWriter(filename);
And error message says that PrintWriter throws one, so when you declare it you need to put it in try block or try-with-resources statement. Another option would be to declare your method to throw the exception but I would recommend one of the first two options.
The quieter you are, the more you are able to hear.
Just to add a bit more context: Java has the concept of "checked exceptions". These are all exceptions that extend Exception, except for those that extend RuntimeException. They are "checked" because the compiler forces you to handle them. If you execute any code that might throw a checked exception, you have two options:
- Handle it there and then, in a try/catch block
- Declare your method as throwing that exception, using the throws statement. This forces the next calling method above to deal with it (again, using one of the two approaches).
(these correspond to the two approaches Kemal and Atul mention).