可能重复:
为什么hibernate将HibernateException更改为RuntimeException(未选中)
将spring中的异常和hibernate保持为未经检查的异常的原因是什么?
只是为了减少编码时的混乱或者背后还有其他一些设计原理吗?
我试图将一个自定义throws子句添加到由接口定义的方法.这是不可能的.我怎么能绕过它呢?这是一些代码:
private void sendRequestToService(final ModuleRequest pushRequest)
{
ServiceConnection serviceConnection = new ServiceConnection()
{
public void onServiceConnected(ComponentName name, IBinder service)
{
try
{
//some lines..
} catch (RemoteException e)
{
throw new RuntimeException(new UnavailableDestException()) ;
}
}
};
}
Run Code Online (Sandbox Code Playgroud)
知道如何抛出我的自定义异常吗?
我正在进行代码审查,我遇到了这个方法定义:
public void something() throws RuntimeException
Run Code Online (Sandbox Code Playgroud)
有没有合理的理由在Java中编写'throws RuntimeException'?
这更像是OO设计问题.
所以,我有一个UnsuportedLocaleException,它只会在应用程序的初始化阶段使用.我有两个选择:
我更喜欢第一个,但不确定这是否是正确的设计.
我发现Java的反射API是异常冗长的,我经常想要捕获每个特定的异常,但只是抛出异常.这是不好的做法,还是你真的把所有这些例外都抛在了方法签名上?然后,调用该方法的每个方法都必须以某种方式处理每个特定的异常.相反,我正在考虑这样做:
public void someMethod()
throws Exception {
try {
// do a bunch of reflection...
} catch(ClassCastException classCastException) {
throw new Exception("Some specific message.", classCastException);
} catch(InvocationTargetException invocationTargetException) {
throw new Exception("Some specific message.", invocationTargetException);
}
}
Run Code Online (Sandbox Code Playgroud)
这种做法很糟糕吗?