库中是否已经有任何自定义异常,我们可以在任何我们希望它抛出自定义消息的地方使用?
Is there any custom exception already in library which we can use where ever we want it to throw with custom message?
我想从一个方法中抛出一个 运行 时间的异常,该方法将被另一个 class 捕获,这又会抛出一个更具体的自定义异常或执行一些操作。
def checkExtension(String fileName,file) {
String [] arr= Holders.config.bdmserver.defaultfile_ext
for (int i=0; i < arr.length-1;i++) {
println("file extension=" + fileName.substring(fileName.length() - 3))
if (arr[i].equals(fileName.substring(fileName.length() - 4))) {
println("in if becoz its either .zip or .exe")
// throw run-time exception
}
}
def fileSize = (file.getSize())/12000
if (fileSize > 5 ){
// throw run-time exception
}
}
不同class
catch (run-time exception ex){
throw new ApplicationException(BdmsException, messageSource.getMessage("file.upload.failureExtension.message", "Error!! you can not upload a file with this extension", Locale.getDefault()), ex)
}
如何在不创建新的自定义异常的情况下做到这一点 class?
您为什么不想自己创建自定义异常?
无论如何,在这种情况下我会选择 UnsupportedOperationException
。
您可以创建自己的异常类型,其中包含您需要的消息,继承自 RuntimeException
。在您的代码中只需输入:throw new MyRuntimeException("Put message here");
。这样你就可以确定你正在处理你自己的异常。
但是,如果您对处理此特定异常不感兴趣,请使用 throw new RuntimeException("Put message here");
Remember that Runtime Exceptions are unchecked
没有新类型的唯一可能方法是创建正常异常(Exception
或 RuntimeException
,都支持字符串消息),传递一些您选择的特定消息,然后在以后的代码检查中Exception
或 RuntimeException
并匹配您的消息。
try {
throw new Exception("my specific string message");
catch (Exception e) {
if ("my specific string message".equals(e.getMessage()) {
// your code
else {
throw e;
}
}
潜在的缺点是如果它是 Exception
,现在你必须声明异常。解决方案是使用 RuntimeException
或 Unsafe.throwException()
我想从一个方法中抛出一个 运行 时间的异常,该方法将被另一个 class 捕获,这又会抛出一个更具体的自定义异常或执行一些操作。
def checkExtension(String fileName,file) {
String [] arr= Holders.config.bdmserver.defaultfile_ext
for (int i=0; i < arr.length-1;i++) {
println("file extension=" + fileName.substring(fileName.length() - 3))
if (arr[i].equals(fileName.substring(fileName.length() - 4))) {
println("in if becoz its either .zip or .exe")
// throw run-time exception
}
}
def fileSize = (file.getSize())/12000
if (fileSize > 5 ){
// throw run-time exception
}
}
不同class
catch (run-time exception ex){
throw new ApplicationException(BdmsException, messageSource.getMessage("file.upload.failureExtension.message", "Error!! you can not upload a file with this extension", Locale.getDefault()), ex)
}
如何在不创建新的自定义异常的情况下做到这一点 class?
您为什么不想自己创建自定义异常?
无论如何,在这种情况下我会选择 UnsupportedOperationException
。
您可以创建自己的异常类型,其中包含您需要的消息,继承自 RuntimeException
。在您的代码中只需输入:throw new MyRuntimeException("Put message here");
。这样你就可以确定你正在处理你自己的异常。
但是,如果您对处理此特定异常不感兴趣,请使用 throw new RuntimeException("Put message here");
Remember that Runtime Exceptions are unchecked
没有新类型的唯一可能方法是创建正常异常(Exception
或 RuntimeException
,都支持字符串消息),传递一些您选择的特定消息,然后在以后的代码检查中Exception
或 RuntimeException
并匹配您的消息。
try {
throw new Exception("my specific string message");
catch (Exception e) {
if ("my specific string message".equals(e.getMessage()) {
// your code
else {
throw e;
}
}
潜在的缺点是如果它是 Exception
,现在你必须声明异常。解决方案是使用 RuntimeException
或 Unsafe.throwException()