On 12/23/06, Tony Wu <[EMAIL PROTECTED]> wrote:
There are two methods, which throw exceptions in different order.
public test1(int a, int b){
if(a>b){
throw AException();
}
synchronized(obj){
if(blabla){
throw BException();
}
}
}
public test2(int a, int b){
synchronized(obj){
if(blabla){
throw BException();
}
if(a>b){
throw AException();
}
}
}
test1 checks the parameters before entering the synchronized block, It
returns immediately instead of waiting for a lock in the condition
which should throw AException. IMHO, test1 is more elegant. The
problem is, if RI do something like the test2 where harmony using
test1, should we follow RI here? What's your opinion?
I think it's implementation detail, and I vote for following RI if possible.
We may discuss specific case one by one. :)
Thanks.
--
Tony Wu
China Software Development Lab, IBM
--
Best regards,
Andrew Zhang