A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 位雪 中级黑马   /  2012-7-18 18:23  /  2695 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 位丹丹 于 2012-7-18 19:05 编辑
  1. import java.io.*;

  2. class CopyText
  3. {
  4.          public static void main(String[] args) throws IOException
  5.          {
  6.               copy_2();
  7.          }
  8.          public static void copy_2()
  9.         {
  10.                 FileWriter fw = null;
  11.                 FileReader fr = null;
  12.                 try
  13.                 {
  14.                            fw = new FileWriter("SystemDemo_copy.txt");
  15.                            fr = new FileReader("SystemDemo.java");

  16.                             char[] buf = new char[1024];

  17.                            int len = 0;
  18.                            while((len=fr.read(buf))!=-1)
  19.                             {
  20.                                  fw.write(buf,0,len);
  21.                              }
  22.                  }
  23.                   catch (IOException e)
  24.                  {
  25.                           throw new RuntimeException("读写失败");

  26.                 }
  27.               finally
  28.               {
  29.                      if(fr!=null)
  30.                      try
  31.                      {
  32.                             fr.close();
  33.                       }
  34.                      catch (IOException e)
  35.                     {  }
  36.                   if(fw!=null)
  37.                    try
  38.                    {
  39.                         fw.close();
  40.                     }
  41.                    catch (IOException e)
  42.                    {  }
  43.             }
  44.      }
  45. }
复制代码
有点不明白,finally中处理的两个异常在catch代码块中怎么没有处理语句,只是try,并没有相应的处理操作,为什么在运行的时候没有出现异常?

评分

参与人数 1技术分 +1 收起 理由
刘笑 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
try
{
       
}
catch ()
{
}
中catch语句块是处理的部分,就是遇到问题怎么处理,
老师讲的时候省略了,
因为他一般都是用输出语句来代替了处理代码,只是输出提醒语句。


其实省略了throw new RuntimeException("");
或者System.out.println("");

不过老师的前面代码都正确,所以在运行的时候,所以没有出现异常,
就算出现异常,也不会有提示,因为他没有写处理异常的代码。

老师是很熟了,所以没写,咱们自己还是写上的好,就算是输出语句也好啊!

希望对你有帮助!

评分

参与人数 1技术分 +1 收起 理由
刘笑 + 1 看视频比较仔细

查看全部评分

回复 使用道具 举报
catch只是捕捉异常,为了可以让编译通过,运行时出异常了就捕捉到然后自己处理,怎么处理是自己的事了,这里面是空语句而已
回复 使用道具 举报
问楼主一个问题:
你上面的代码怎么弄的?前面还有编号,看着很整齐,教教我吧!
回复 使用道具 举报
catch块中是定义的发生相应异常的处理代码,如果没有代码当发生此类异常的时候不会进行处理,由于没有异常信息在这种情况下很难找到程序的错误,所以不建议那样写
运行的时候没有异常只能说明你这个程序在执行时没有发生错误
回复 使用道具 举报
看到图上的<>括号没,点击出现第二个图
其实所有的大括号是左对齐的,我自己打的空格

未命名.jpg (4.03 KB, 下载次数: 233)

未命名.jpg

未命名1.jpg (7.8 KB, 下载次数: 277)

未命名1.jpg
回复 使用道具 举报
位雪 中级黑马 2012-7-18 19:06:26
7#
陈云帆 发表于 2012-7-18 18:36
try
{
       

:handshake,谢啦
回复 使用道具 举报
位丹丹 发表于 2012-7-18 19:04
看到图上的括号没,点击出现第二个图
其实所有的大括号是左对齐的,我自己打的空格 ...

3Q:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马