java - 将运行时异常封装在retun方法上,或者生成异常方法?

标签 java exception methods return

我想知道将 throw 封装在方法中并在返回方法中调用它是否是一个好习惯

int returnMethod(){
  if(ok){
    return 1;
  }     
  alwaysReturnRuntimeException();
  return 1; //Fake
}

void alwaysReturnRuntimeException(){
  if(specificError){
    throw new OneRuntimeException();
  }
  // General error
  throw new GeneralRuntimeException();
}

或者最好生成异常,但不要抛出。只返回它并把它扔到父方法上。

int returnMethod(){
  if(ok){
    return 1;
  }     
  throw buildException();
}

void buildException(){
  if(specificError){
    return new OneRuntimeException();
  }
  // General error
  return GeneralRuntimeException();
}

最佳答案

我想说,决定必须抛出哪种异常的方法是重用代码的有效方法,但前提是它确实适合您的应用程序设计(在不了解有关代码其余部分的更多详细信息的情况下,我可以' t 给出一个有充分根据的替代方案)。但是,我强烈建议不要在代码中使用未经检查的异常(但这是另一个故事,而且有点主观)。

如果您确实需要这种方法,有两个建议:

  • 明确地命名您的抛出方法,以显示其直接意图,例如 throwMyException() (对于不返回任何内容的方法来说,alwaysReturnRuntimeException() 是一个不好的名称)
  • 即使编译器在未检查异常的情况下不要求这样做,也要在方法签名中声明可抛出异常,以避免混淆。

你的代码可能是这样的:

int returnMethod(){
  if(!ok){
    throwRuntimeException();
  }     
  return 1;
}

void throwRuntimeException() throws OneRuntimeException, GeneralRuntimeException {
  if(specificError){
    throw new OneRuntimeException();
  }
  // General error
  throw new GeneralRuntimeException();
}

关于java - 将运行时异常封装在retun方法上,或者生成异常方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54573350/

相关文章:

php - 方法参数的首选做法是什么?

java - 在方法中使用 "this"

java - JUnit 依赖项未加载

android - java.lang.RuntimeException : Unable to instantiate activity ComponentInfo//java. lang.ClassNotFoundException 异常

java - 如何处理 Hibernate 连接

json - 如何使用 HTTPsURLConnection 连接 Android

haskell - 如何在 Haskell 中编写错误类型?

c#CompareTo()方法

java - openCV 中 BROWN 颜色的 HSV 值范围是多少?

java - 在 linux 中执行 java 程序时 Xterm 显示不正确