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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Joyuang 黑马帝   /  2012-1-17 10:02  /  7339 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 钱兆元 于 2012-1-31 20:45 编辑

突然想到,在try块中可以抛出异常吗?
也就是说try抛出异常,这个可以嵌套吗?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

8 个回复

倒序浏览
已解决,多谢
回复 使用道具 举报
建议写点代码,实践一下
回复 使用道具 举报
正在鼓捣,谢谢喽
回复 使用道具 举报
throws 声明异常
throw 抛出异常
try 捕捉异常
catch 报出异常执行的操作
finally  必须执行的代码 如:关闭Connection
回复 使用道具 举报
在try部分肯定是没必要了,不过finally部分有可能会用到,比如你在finally部分关闭一些资源什么的,会抛异常,这时候你就要用到try了
回复 使用道具 举报
在try中可以抛出异常比如来一个throw new RuntimeException(),在毕老师的输入输出中不是在try中也有抛出异常吗??所以说可以在try中抛出异常,编译时异常运行时异常都可以,不过都比较少见而已。
回复 使用道具 举报
李晓军 黑马帝 2012-1-20 21:56:22
8#
一般情况下没必要用,但有时候也有其使用的必要性,例如:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class FileRead {

        BufferedReader bufReader = null;

        public FileRead() {
                try {
                        bufReader = new BufferedReader(new FileReader(new File("C://Log.log")));
                        try {
                                String line = bufReader.readLine();
                                while (null != line) {
                                        System.out.println(line);
                                        line = bufReader.readLine();
                                }
                        } catch (IOException e) {
                                System.out.println("文件读取失败");
                        } finally {
                                dispose();
                        }
                } catch (FileNotFoundException e) {
                        System.out.println("文件不存在");
                }
        }

        public void dispose() {
                try {
                        bufReader.close();
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }

        public static void main(String[] args) {
                new FileRead();
        }
}
     使用try-catch嵌套来解决文件关闭的问题,当文件不存在时创建bufReader对象失败,所以不会去执行第二层的try-catch了,直接抛出异常。也不需要去关闭流了。

    如果使用一层try-catch的话,如果文件不存在,则bufReader对象,也就不会创建成功,如果去finally中关闭的话,如果不判空去关闭,就会出现空指针异常。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
戴振良 黑马帝 2012-1-21 16:46:08
9#
搞这么复杂的问题,还不如把时间用去把其他的基础内容给学了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马