- ã³ãŒããèŠãŠãããåããŠããã¯ãããããåŠçããŠããã¯ãããšèããã ãã ãšããã®æšæž¬ãééã£ãŠãæã«ã¯æ£ããåäœããªãããããã°å®è¡ããŠåäœç¢ºèªãããã
- ïŒç®æ¬¡ïŒ
- ã©ããªæã«ãããã¬ã䜿ãã
- ããã°ã©ã ã¯åãããæ³å®éãã®åäœãããŠãããªãæãïŒåäœã確èªããªããã³ãŒãã远ãããããã³ãŒããèªãããã«äœ¿ãããšãçãããªãïŒ
- å¯Ÿå¿æ¹æ³
- case 1) ErrorãExceptionãåºããªãã該åœããã³ãŒãè¡ãšåºåå 容ãåèã«ãã€ã€ãèŠå ãæšå®ããŠã察çãæ€èšããã
- case 2) é¢é£ããããªå€æ°ãçã£ç«¯ããprintåºåããŠã¿ãŠèŠå ç¹å®ããã
- case 3) ãããã¬ã䜿ããèŠå ãçµã蟌ã¿ã€ã€å¯Ÿçãæ€èšããã
- å¯Ÿå¿æ¹æ³
- ããã°ã©ã ã¯åãããæ³å®éãã®åäœãããŠãããªãæãïŒåäœã確èªããªããã³ãŒãã远ãããããã³ãŒããèªãããã«äœ¿ãããšãçãããªãïŒ
- ãããã¬ã®çš®é¡
- ã¿ãŒããã«ã§æäœ: jdb
- IDEã§æäœ: jdbã®ã©ãããŒã«ãªã£ãŠããã®ã§ãåºæ¬çãªæäœã¯äžç·ãã³ãã³ããã¿ãŒããã«äžã§å
¥åããããGUIã§å
¥åããããéããããã
- IDEã§ãããã¬ã䜿ãéã®ã¡ãªãã
- ã©ã®è¡ãå®è¡ããããšããŠãã®ã確èªããããã
- 倿°ã®äžèº«ããã¡ãã¡printãããšãåç §ã§ããã
- IDEã§ãããã¬ã䜿ãéã®ã¡ãªãã
- step 1: åäœãäžæçã«æ¢ãããè¡ã«ãã¬ãŒã¯ãã€ã³ã(breakpoint)ãèšå®ããã
- æãã€ããªããªãmain()ã¡ãœãã1è¡ç®ã«èšå®ããã®ãæããã¬ãŒã¯ãã€ã³ãã¯è€æ°èšå®ã§ããããåŸããåé€ããããšãå¯èœãªã®ã§åãæ¢ãã1ç®æã¯èšå®ãããã
- step 2: ãããã¬ãèµ·åïŒãããã°å®è¡ããïŒã
- step 3: ãããã°å®è¡ããªããæ³å®éãã«åŠçãé²ãã§ãããã©ããã確èªããã
- åºæ¬çãªå®è¡ç¶ç¶æ¹æ³:
- step over: ä»ããã¹ã¿ãã¯ã§åæ¢è¡ã®ã³ãŒããåŠçããæ¬¡ã®è¡ã«ç§»åãããŸã§å®è¡ãããæ¬¡ã®è¡ã«ç§»åãããäžæåæ¢ããã
- step into: 忢è¡ãã¡ãœããåŒã³åºãã®å Žåããã®ã¡ãœããå
ã«ç§»åããã
- step into(force): System.out.println()çæšæºã¡ãœããã®å Žåããã®ã¡ãœããå ã«ç§»åããããªãããšãå€ãããã®ãããããã©ã«ãã® step into ã§ã¯ãæšæºã¡ãœããã®å Žåã«ã¯äžã«ç§»åããªããããã«å¯Ÿããããããã¡ãœããã«å¯ŸããŠäžã«ç§»åãããå Žåã«ã¯ force ãããšè¯ãã
- step out: ä»ããã¹ã¿ãã¯ããæãããŸã§å®è¡ãç¶ããæãããäžæåæ¢ããã
- ãæ³å®éãã«åŠçãé²ãã§ãããã©ãããã¯ã倿°ã®äžèº«ã確èªããããšã§æ€èšŒã§ããã¯ãã§ããã
- å¿ èŠã«å¿ããŠæ¡ä»¶ãèšå® (conditional breakpoint)ããã
- åºæ¬çãªå®è¡ç¶ç¶æ¹æ³:
- 泚æ
- IDEã§ãããã°å®è¡ãããšãçµäºãããŸã§ã¯ãããã¬ãåãããŸãŸã«ãªãããã®ããšã«æ°ã¥ãããäžæåæ¢ç¶æ ã®ãŸãŸããäžåºŠãããã°å®è¡ããããšãè€æ°ãããã¬ãåããå®è¡äžã®åã ããããã°ãèµ°ãç¶ãããããã¡ã¢ãªçãªãœãŒã¹ãé£ããŸããã®ã§æ³šæã
- 察ç
- ãããã¬ã§äžæåæ¢ãããŠããªããããã忢ãããŠããæ°ãããããã°å®è¡ããã
- ã³ãŒãäŸ: noisy_file
- ç°å¢æºåïŒåäœç¢ºèª
- ã³ãŒãã®æºå
- IntelliJãèµ·åããäžèšã³ãŒãäŸã®ãªããžããªURLããã¯ããŒã³ãäœæããã
- ReadCSVFileã¯ã©ã¹ãå®è¡ãããããšã©ãŒãåºãã¯ãã ã
- ã³ãŒãæŠèŠ
- CSVãã¡ã€ã«ïŒdata/daily_access.csvïŒãçšæãããŠããã1åç®ã¯æ¥ä»ã2åç®ã¯ã¢ã¯ã»ã¹æ°ïŒintegerïŒãæ³å®ã
- äžèšãã¡ã€ã«ã1è¡ãã€èªã¿èŸŒã¿ãString.split(",")ã§ã«ã³ãåºåãã®åå²ããã
- åå²ãã1ã€ç®ïŒæ¥ä»ïŒãStringåãšããŠä¿åã2ã€ç®ïŒã¢ã¯ã»ã¹æ°ïŒãInteger.parseInt()ã§integeråã«å€æããŠä¿åã
- ã³ãŒãæŠèŠãèžãŸãããšã©ãŒåºåããèŠå ãæšæž¬ããŠã¿ããã
- ã³ãŒãæŠèŠ
- ã³ãŒãã®æºå
- ä»åã®ã±ãŒã¹ã¯ããšã©ãŒåºåããèŠå ç¹å®ã¯å®¹æãã ãã©ãããã¬ç·Žç¿ã®ããã«ãããã°å®è¡ããŠã¿ããã
- step 1: åäœãäžæçã«æ¢ãããè¡ã«ãã¬ãŒã¯ãã€ã³ã(breakpoint)ãèšå®ããã
- ä»åã¯mainã¡ãœããã®åé è¡ã§ããã16è¡ç®ã«èšå®ããŠã¿ããã
- step 2: ãããã¬ãèµ·åïŒãããã°å®è¡ããïŒã
- Runã§ã¯ãªãDebugããå®è¡ããããšãã¬ãŒã¯ãã€ã³ãã«éãããŸã§åŠçãç¶ãããã©ãçãããäžæåæ¢ãããä»åã¯16è¡ç®ã§åæ¢ããã¯ãã ã
- 忢ããŠãç¶æ ã§ãèæ¯ãæ¿ããã«ãŒã«ãªã£ãŠãè¡ãã¯ã次ã«å®è¡ããè¡ããŸã ãã®è¡ã¯å®è¡ããŠããªãã
- Runã§ã¯ãªãDebugããå®è¡ããããšãã¬ãŒã¯ãã€ã³ãã«éãããŸã§åŠçãç¶ãããã©ãçãããäžæåæ¢ãããä»åã¯16è¡ç®ã§åæ¢ããã¯ãã ã
- step 3: ãããã°å®è¡ããªããæ³å®éãã«åŠçãé²ãã§ãããã©ããã確èªããã
- step overïŒâïŒ ããŠã¿ãããå®è¡ãã床ã«ãä»ããã¹ã¿ãã¯å
ã§æ¬¡ã®è¡ã«ç§»åããŠäžæåæ¢ãããã¯ãã ããŸãã倿°ãã©ã®ããã«æŽæ°ãããŠãããã確èªã§ããã¯ãã ã
- whileæã®äžãç¹°ãè¿ãããšã確èªã§ãããããããã¬ãäžåºŠåæ¢ïŒå·Šäžã®èµ€ãåè§ïŒããŠãæ¹ããŠãããã¬ãèµ·åãããããŸã16è¡ç®ã§åæ¢ããŠããç¶æ ã
- step intoïŒéãâïŒ ããŠã¿ããã25è¡ç®ãŸã§ã¯åã«ã次ã®è¡ãã«ç§»åããŠåæ¢ããŠããã¯ãã ãã25è¡ç®ã®æ¬¡ã«ã¯10è¡ç®ã«ç§»åããã¯ãã ãããã¯ãstep intoã¯ã¡ãœãããåŒã°ããããã®äžã«ç§»åããŠãäžæåæ¢ãããããã
- è£è¶³
- ãéãstep intoãã¯ãèªäœã¡ãœããã®ã¿äžã«ç§»åãéåžžã¯ãã¡ãã§ååãªã¯ãã
- ãèµ€ãstep into (force)ãã¯ãæšæºã¡ãœããã§ãã£ãŠãäžã«ç§»åã
- lineProcess()å ã§äžæåæ¢ããŠããç¶æ ã§ãæ¬¡ã®æç¶ããæºãããã
- è£è¶³
- step outïŒâïŒ ããŠã¿ãããæ¬¡ã®è¡ã§ã¯ãªããlineProcess()ãåŒã³åºããã¹ã¿ãã¯å ã®æ¬¡ã®è¡ãã«ç§»åããŠäžæåæ¢ããŠããã¯ãã ãstep outã¯ãä»ããã¹ã¿ãã¯å ãåŠçãçµããŠãã忢ãããããæã«äœ¿çšã
- step overïŒâïŒ ããŠã¿ãããå®è¡ãã床ã«ãä»ããã¹ã¿ãã¯å
ã§æ¬¡ã®è¡ã«ç§»åããŠäžæåæ¢ãããã¯ãã ããŸãã倿°ãã©ã®ããã«æŽæ°ãããŠãããã確èªã§ããã¯ãã ã
- step 1: åäœãäžæçã«æ¢ãããè¡ã«ãã¬ãŒã¯ãã€ã³ã(breakpoint)ãèšå®ããã
- ãã¥ãŒããªã¢ã«1ã§ãlineProcess()ã«ããç¶æ
ã§äžæŠæäœãæ¢ãããã
- éåžžå®è¡æã«ã¯ãä»ããã¡ãœããå
ã®ç¶æ
ïŒïŒã¹ã³ãŒãç¯å²å
ã®ç¶æ
ïŒããåç
§ã§ããªãã
- äŸãã°ãlineProcess()ã¡ãœããå ã§åæ¢ããŠããæäžã ãšãåŒæ°ã§ããline, countã«å ããã¡ãœããå ã§å®£èšããŠããããŒã«ã«å€æ°items, str, valueã®5倿°ãŸã§ããåç §ã§ããªãã
- ãããããããã¬èµ·åäžãªãã°ãããã«èŸ¿ãçããŸã§ã«äœæããã¹ã¿ãã¯ãèŠãèŠããããšãå¯èœã
- å·ŠäžãFramesãã¡ãã¥ãŒã«ã¯ãçŸåšä¿åããŠããã¹ã¿ãã¯ã»ãã¬ãŒã ãåæãããŠãããä»ããã¹ã¿ãã¯ãã¬ãŒã ã1çªäžããã®äžã«ãlineProcess()ãåŒã³åºãçŽåã®ã¹ã¿ãã¯ãã¬ãŒã ã§ããmain()ã®ç¶æ ããä¿åãããŠããã
- ãã®Framesã¡ãã¥ãŒãã¯ãªãã¯ããã ãã§è©²åœãã¬ãŒã ã芳å¯ããããšãã§ããã
- éåžžå®è¡æã«ã¯ãä»ããã¡ãœããå
ã®ç¶æ
ïŒïŒã¹ã³ãŒãç¯å²å
ã®ç¶æ
ïŒããåç
§ã§ããªãã
- äžåºŠãããã¬ãçµäºããããïŒèµ€ãåè§ãã¿ã³ïŒ
- çšæãããŠããã³ãŒãäŸã§åé¡ã®ããç®æã¯ãã«ãŒãåŠçãäœåºŠãç¹°ãè¿ããåŸã§åããŠåé¡ãæç¢ºåããã
- ãã¬ãŒã¯ãã€ã³ããæå®ããŠãããã«èŸ¿ãçããŸã§step in/outå®è¡ããã®ã¯ãã«ã€ãããããæã¯ããã¬ãŒã¯ãã€ã³ãã«æ¡ä»¶ãèšå®ããããã
- ãŸãã¯çŸåšèšå®ããŠãããã¬ãŒã¯ãã€ã³ããå šãŠåé€ãããã
- 12è¡ç®ã«ãã¬ãŒã¯ãã€ã³ããèšçœ®ããã®åŸãèšçœ®ããåŸã§èµ€äžžããCtrlããŒæŒããªããã¯ãªãã¯ããããšãããã€ãã®æ¡ä»¶ãèšå®ããããšãã§ããã
- ããã§ã¯ãConditionãã«
str.equals("04/Apr/2015") == trueãšå ¥åããŠãDoneããããããã¯ããçŽåã®è¡ã§èªã¿èŸŒãã strã®å€ãæå®ãããæååãšçããæã®ã¿äžæåæ¢ããããšããæ¡ä»¶ãèšå®ããäŸã«ãªã£ãŠããã - äžèšèšå®ãããããããã¬ãèµ·åãããããã®æ¡ä»¶ã«ãªããŸã§åŠçãç¶ç¶ãããæå®æ¡ä»¶ã«åèŽãããäžæåæ¢ç¶æ ã«ãªã£ãŠããã¯ãã ã
- ããã§ã¯ãConditionãã«
- ãã¬ãŒã¯ãã€ã³ããæå®ããŠãããã«èŸ¿ãçããŸã§step in/outå®è¡ããã®ã¯ãã«ã€ãããããæã¯ããã¬ãŒã¯ãã€ã³ãã«æ¡ä»¶ãèšå®ããããã