本帖最后由 何超 于 2013-11-7 20:11 编辑
- <div class="blockcode"><blockquote>class Demo
- {
- public static void main(String[] args)
- {
- try
- {
- showExce();
- }
- catch(Exception e)
- {
- System.out.println("B");
- }
- System.out.println("D");
- }
- public static void showExce()
- {
- try
- {
- throw new Exception(); ①
复制代码 视频里说的是编译失败,因为这里直接抛出异常。但是紧跟的后面不是catch么 这里不是相当于在函数内部直接处理掉了一场么
并且下一个代码里的同样是这样的问题却可以运行 所以我很疑惑- class Test
- {
- public static String output="";
- public static void foo(int i)
- {
- try
- {
- if(i==1)
- throw new Exception(); ②
- output+="1";'
- }
- catch(Exception e)
- {
- output+="2";
- return;
- }
- finally
- {
- output+=3;
- }
- output+=4;
- }
- public static void main(String[] args)
- {
- foo(0);
- System.out.println(output);
- foo(1);
- System.out.println(output);
- }
- }
复制代码 ①和②都是在函数内部抛出了异常 然后后面紧跟着一个catch 为什么①不能运行 ②能运行!!! |