minimize

Strict Exception

例外に関する(厳密な)ルールセットです。

AvoidCatchingThrowable

Throwable をCatchしている箇所を検出します。
これは全ての例外およびエラーを捕らえてしまう為、
例えば OutOfMemoryError のような致命的エラーがスローされない危険性があります。

SignatureDeclareThrowsException

Exceptionをスローするメソッドを検出します。
これは全ての例外をカバーする為、実際にどんな例外がスローされるのかを
理解することが難しくなります。

ExceptionAsFlowControl

ややこしい例外をスローしている箇所を検出します。

try {
  try {
    // ここで例外が発生すると (A) に処理が移る
  } catch (Exception e) {
    // (A)
    throw new WrapperException(e); // さらにここで (B) に処理が移る
  }
} catch (WrapperException e) {
  // (B)
}

AvoidCatchingNPE

NullPointerException をCatchしている箇所を検出します。
この例外をCatchする前にnullチェックをするべきです。

AvoidThrowingRawExceptionTypes

直接Exceptionをスローしている箇所を検出します。
通常、Exceptionをサブクラス化した例外をスローするべきです。

AvoidThrowingNullPointerException

NullPointerException をスローしている箇所を検出します。
この例外は明示的にスローすべき例外ではありません。

AvoidRethrowingException

catchした例外をそのまま上にthrowしている箇所を検出します。

void bar throws SomeException {
  try {
    ...
  } catch (SomeException e) {
    throw e; // ただ上に投げているだけ。だったらtry~catch句を使わない方が良い
  }
}

DoNotExtendJavaLangError

java.lang.Error をextendしたクラスが定義されています。

public class Foo extends Error { }
[コメント(0)]
[PR] b b Cvgb nEXN[jOb FXb Cvgb ]ETCgb SEOb ANZXb nEX[J[b ^ItBXb SEO΍b ҋZb sYSۃ[b vb b nCb AXNb ]Eb یb ev[gb ꗷsb b Ƌhb b zb ҋZb ŗmb Stb wb [VbNb }bT[Wb FXb Mb 365b AtBGCgb эb FXb z[y[Wb fCg[hb FXb COnb ^Cb oRNb nC@^J[b xXg nC ze [cb ob NNnnCb Hawaii hotelsb Hawaii Activitiesb bhhrb zm}\b
y^cЁup_CVtgvT[rXz nCnIvVicA[ibN}j - rWlXNXq - iq(1) - iq(2) - COze - ؍s
z[y[W쐬 - ^T[o[ - gуz[y[W - uO - ze \ - ^CVFA - B - nC@Rh~jA - o@ze - nC@sY - v[Pbg@ze