本帖最后由 张雪磊 于 2012-8-9 11:35 编辑
class Bank
{
private int sum;
Object obj = new Object();
public void add(int n)
{
synchronized(obj)
{
sum=sum+n;
//try{Thread.sleep(10);}catch(Exception e){}
//这里为什么要添加异常,直接锁一次不就行了吗
System.out.println("sum="+sum);
}
}
}
因为sleep方法在定义是跑出了已成
public static void sleep(long millis) throws InterruptedException
当函数体上申明了异常,当你调用时,你要么throws抛出去,要么用try{}catch(){}语句处理,否者就会编译失败,
RuntimeException除外。也就说,函数内如果抛出的RuntimeExcpetion异常,函数上可以不用声明。调用这个函数时可以不用处理
|