黑马程序员技术交流社区
标题:
突然想到,在try块中可以抛出异常吗?
[打印本页]
作者:
Joyuang
时间:
2012-1-17 10:02
标题:
突然想到,在try块中可以抛出异常吗?
本帖最后由 钱兆元 于 2012-1-31 20:45 编辑
突然想到,在try块中可以抛出异常吗?
也就是说try抛出异常,这个可以嵌套吗?
作者:
刘基军
时间:
2012-1-17 10:07
建议写点代码,实践一下
作者:
Joyuang
时间:
2012-1-17 10:15
正在鼓捣,谢谢喽
作者:
曾辉
时间:
2012-1-17 14:11
throws 声明异常
throw 抛出异常
try 捕捉异常
catch 报出异常执行的操作
finally 必须执行的代码 如:关闭Connection
作者:
刘明瑞
时间:
2012-1-18 13:20
在try部分肯定是没必要了,不过finally部分有可能会用到,比如你在finally部分关闭一些资源什么的,会抛异常,这时候你就要用到try了
作者:
最初的理想
时间:
2012-1-20 20:35
在try中可以抛出异常比如来一个throw new RuntimeException(),在毕老师的输入输出中不是在try中也有抛出异常吗??所以说可以在try中抛出异常,编译时异常运行时异常都可以,不过都比较少见而已。
作者:
李晓军
时间:
2012-1-20 21:56
一般情况下没必要用,但有时候也有其使用的必要性,例如:
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中关闭的话,如果不判空去关闭,就会出现空指针异常。
作者:
戴振良
时间:
2012-1-21 16:46
搞这么复杂的问题,还不如把时间用去把其他的基础内容给学了
作者:
Joyuang
时间:
2012-1-31 20:06
已解决,多谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2