Constant Conditions & Exceptions  

 

만일 오로지 하나의 상태(예를 들면, 오직 또는 오직 거짓) 가지는 어떤 상태가 있다면, 또는 포인터 예외를 잠재적으로 던질 있는 메소드 인보케이션이 있다면,  Constant conditions & Exceptions 항상 당신에게 알리기 위해 디자인되었습니다.

만일 Constant conditions & exceptions  체크 박스가 선택되고 Inspection 어떤 문제를 발견하면, Inspection  윈도우는 일정한 조건 또는 예외를 던질 있는 메소드를 보여주는 Constant conditions & exceptions  탭을 표시합니다

검사에 의해 발견된 문제에 대한 어떤 사전 정의의 솔루션도 없습니다


검사는 어떤 옵션도 가지지 않습니다.


 

사용 일정한 조건


다음의 클래스를 보십시오:

 
  public class MyKeyListener extends KeyAdapter {
    public void keyTyped(KeyEvent e) {
      int keyCode = e.getKeyCode();
 
      if (keyCode == KeyEvent.VK_F1) {
        showHelp();
      }
      else if (keyCode == KeyEvent.VK_F2) {
        saveCurrentFile();
      }
      else if (keyCode == KeyEvent.VK_F1) { // Error here. Should be KeyEvent.VK_F3
        openNewFile();
      }
      else if (keyCode == KeyEvent.VK_F4) {
        closeCurrentFile();
      }
    }


Inspection 
결과는 윈도우에 나타납니다:



검사는 조건 <else if (keyCode == KeyEvent.VK_F1)> 항상 false 이고 그러므로 그것은 결코 실행되지 않을 것이라는 것을 우리에게 알립니다.

사용 - NPE 샘플


예를 들면, 다음의 코드를 조사하십시오:

 
    public void myMethod(String m_str) {
        String str = m_str;
        if (str != null) {
            System.out.println(str.charAt(1));
        }
 
        ...
 
        //some code here - but str is not changed
 
        ...
 
        System.out.println(str.charAt(1));
    }


Inspection 
결과는 윈도우에 나타납니다:



검사는 NPE 문자열 <에 생산될지도 모르는 것을 우리에게 알립니다 ><System.out.println(str.charAt(1));> 에서 생성되었을 것을 우리에게 알려줍니다.

그러나, if 조건 없이 메소드는 무시될 입니다(당연히, IDEA 어느 것이 매개 변수로서 메소드에 넘어가는지 모릅니다).