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Àº ¾î´À °ÍÀÌ ¸Å°³ º¯¼ö·Î¼­ ¸Þ¼Òµå¿¡ ³Ñ¾î°¡´ÂÁö ¸ð¸¨´Ï´Ù).