본문 바로가기

자바

(2)
가상 메소드를 호출한 클래스/메소드 알아내는 방법 큰 규모의 프로젝트를 하다보면, 내가 작성한 메소드를 누군가 호출을 하게 된다. 그런데, 어떤 메소드가 호출을 할 때에는 정상 작동을 하면서도, 또 다른 메소드가 호출을 하면 에러가 발생하는 경우가 있다. 심지어 프로젝트가 너무 복잡해서 어떤 메소드가 호출을 했을 때 에러가 발생하는지 알 수 없을 때도 있다. 사실 이 코드는 에러를 잡는다기 보단,(Parameter에 관련된 Log를 찍어 디버깅이 충분히 가능하다.) 누가 나를 잘못 호출하는 지 알아낼 수 있는, 에러 유발자를 찾는 코드라고 할 수 있다. (동료의 요청으로 한번 짜보았다.) 일단, 기본 아이디어는 다음과 같다. Thread 혹은 Stack을 이용해보자. Thread를 사용하기는 애매할 것 같고, Exception 발생시 확인할 수 있는 S.. 2011. 9. 27. 11:19
가상 정규식 특수문자 사용하기 Java로 String Parser를 구현하는 중에 특수문자를 치환해줘야하는 경우가 발생했다. 정규식에서 사용하는 정규 문자들을 치환(String.replaceAll 메소드 사용)해줘야 했었는데, 정규식에서는 특수문자를 정규식의 패턴으로 인식해서 PatternSyntaxException이 발생하였다. 이러한 방법을 해결해주기 위해 치환할 때 아래와 같이 표현해주면 된다. 1. []으로 싸줘야하는 문자 * → [*] + → [+] $ → [$] | → [|] 2. \\ 추가 해야하는 문자( → \\( ) → \\) { → \\{ } → \\} ^ → \\^ [ → \\[ ] → \\] 3. 무관한 특수 문자! # % & @ ` : ; - . , ~ ' " 2010. 11. 19. 16:14