catch后的花括号{}里什么都没写,是说捕捉到异常时,不做任何处理。
Exception是一个Java异常类,e是声明Exception的实例变量名,和其它类的声明一样:
如:String str;
其它也可以 try {...} catch(Exception ex) {},并不一定非要用e。

解决方案 »

  1.   

    try {...} catch(Exception ex) {...}finally{...}
    只要有try,就要至少有一个catch或finally与它对应。catch的异常必须是try块中可以抛出的异常,否则编译出错。
      

  2.   

    当然,生成的违例必须在某个地方中止。这个“地方”便是违例控制器或者违例控制模块。而且针对想捕获
    的每种违例类型,都必须有一个相应的违例控制器。违例控制器紧接在try 块后面,且用catch(捕获)关
    键字标记。如下所示:
    try {
    // Code that might generate exceptions
    } catch(Type1 id1) {
    // Handle exceptions of Type1
    } catch(Type2 id2) {
    // Handle exceptions of Type2
    } catch(Type3 id3) {
    // Handle exceptions of Type3
    }
    // etc...
    每个catch 从句——即违例控制器——都类似一个小型方法,它需要采用一个(而且只有一个)特定类型的
    自变量。可在控制器内部使用标识符(id1,id2 等等),就象一个普通的方法自变量那样。我们有时也根本
    不使用标识符,因为违例类型已提供了足够的信息,可有效处理违例。但即使不用,标识符也必须就位。
    控制器必须“紧接”在try 块后面。若“掷”出一个违例,违例控制机制就会搜寻自变量与违例类型相符的
    第一个控制器。随后,它会进入那个catch 从句,并认为违例已得到控制(一旦catch 从句结束,对控制器
    的搜索也会停止)。只有相符的catch 从句才会得到执行;它与switch 语句不同,后者在每个case 后都需
    要一个break 命令,防止误执行其他语句。
    在try 块内部,请注意大量不同的方法调用可能生成相同的违例,但只需要一个控制器。