Ruc*_*era 0 java exception-handling
请考虑以下声明
BufferedReader br=new BufferedReader(new FileReader("D:\\test.txt"));
Run Code Online (Sandbox Code Playgroud)
通常我们必须throws Exception或我们必须使用try-catch来处理Exception.
但是如果我想在静态块中使用它,如下所示.唯一能做的就是用try-catchblock来处理Exception.但是不能throws在这里使用?这里java没有提供的原因是什么throws?
static {
try {
BufferedReader br = new BufferedReader(new FileReader("D:\\test.txt"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我也加上这个.块不是静态块类似规则的情况适用于此处.
{
try {
BufferedReader br = new BufferedReader(new FileReader("D:\\test.txt"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我们通常可以通过以下方法进行此操作
public static void main(String[] args) throws FileNotFoundException {
BufferedReader br = new BufferedReader(new FileReader("D:\\test.txt"));
}
Run Code Online (Sandbox Code Playgroud)
它是在初始化类时运行的静态块.因为它是一个经过检查的异常,你不能抛出它,因为无处可去.
抛出一个未经检查的异常是可能的,但它会使程序崩溃,因为它们都无法在任何地方被捕获.
相反,您可以将代码放入
public static void init() throws FileNotFoundException
{
BufferedReader br = new BufferedReader(new FileReader("D:\\test.txt"));
}
Run Code Online (Sandbox Code Playgroud)
然后在程序启动时调用一次.
编辑:删除static关键字不会更改编译结果中的任何内容.它只是允许它丢失的语法.
| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |