????Java?????????????????????????????????????Ч???????????????????????????????????????????????????Σ???????????????????????
????????????
?????????????
????????????
????????Ч???????????£???????????“??”????????????????????“????“???????????????“???“?????????????????л????????????????????????к?????????????????????????????????????д???????ú?????????????????
???????????
???????????
??????????
????????????Ч????????????????????????????????????????JCheckbook?????????JCheckbook????????????????????????????????????????
???????????
????Java???????????????ν???????Throwable??????????Error??Exception????Exception???????RuntimeException.????????.

?????????????????????????????????????????????????????????????(??:new Throwable())??????????????????????????????????????????Java?????????????????????????壬???????????????????
?????? ?磺java.io package???ж?????Exception???????IOException?????????????? FileNotFoundException??EOFException??ObjectStreamException??ЩIOException???? ?????????????????????I/O????????????????????????β?????????л???????.??????壬????????????????”???????”??? ????
?????? ???????????????????????磺JCheckbook????????????????????????????FileNotFoundException?????? EOFException????????????????????????????????С???????????ObjectStreamException??????????????????? ???????????????????????????????
????Java????????????????????????????????try?鶨????catch?飬?????????????????????????
????File prefsFile = new File(prefsFilename);
????try{
????readPreferences(prefsFile);
????}
????catch (FileNotFoundException e){
????// alert the user that the specified file
????// does not exist
????}
????catch (EOFException e){
????// alert the user that the end of the file
????// was reached
????}
????catch (ObjectStreamException e){
????// alert the user that the file is corrupted
????}
????catch (IOException e){
????// alert the user that some other I/O
????// error occurred
????}
????JCheckbook ????????catch?????????????????????????????????????????????FileNotFoundException???????????????????? ????????Щ???????catch?????????????????????????????????????????????У??????????????????????????????????????
???????????catch?鴦?????????????catch????IOException??????????????????????????.??????????????????????????????????????????????δ??????????????
?????? ?????????????????????????????????????????????????壢???????????????????java.io.EOFException????????? ????????????e????????????????????????????????????????е??????????????????????????????????????????????????????????????????????? ?????????????
????????????JCheckbook???????readPreferences()?в?????????????????????????????????????????????????????????????????????????????????????????????
???????????
?????????????????????????????????????????????????????????????????????????????????????????????????????λ????????????
????java.lang.NullPointerException
????at java.io.FileInputStream.open(Native Method)
????at java.io.FileInputStream.<init>(FileInputStream.java:103)
????at jcheckbook.JCheckbook.readPreferences(JCheckbook.java:225)
????at jcheckbook.JCheckbook.startup(JCheckbook.java:116)
????at jcheckbook.JCheckbook.<init>(JCheckbook.java:27)
????at jcheckbook.JCheckbook.main(JCheckbook.java:318)
?????? ??????FileInputStream???open()???????NullPointerException?????????????? FileInputStream.close()????Java???????????????????????????????????????????????????Java API??????????????????????????????????????????????????д?????????
????????????NullPointerException??Java????????????????????????????????????????????????????????飺??????????null????????????ò????????????????????
??????????????????????????????????????????????????readPreferences()?????????????????????????readPreferences()?????????????????????????????????????
????public void readPreferences(String filename)
????throws IllegalArgumentException{
????if (filename == null){
????throw new IllegalArgumentException("filename is null");
????}  //if
????//...perform other operations...
????InputStream in = new FileInputStream(filename);
????//...read the preferences file...
????}
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????readPreferences()?????????????????????????????????
????java.lang.IllegalArgumentException: filename is null
????at jcheckbook.JCheckbook.readPreferences(JCheckbook.java:207)
????at jcheckbook.JCheckbook.startup(JCheckbook.java:116)
????at jcheckbook.JCheckbook.<init>(JCheckbook.java:27)
????at jcheckbook.JCheckbook.main(JCheckbook.java:318)
???????????а???????????????????????????????????????????????????????????????????????????????????????????NullPointerException??????????