2016-06-08 5 views
0

내 로그에서 null 참조 예외를 던진 변수를 표시하려고합니다.- null 참조 예외를 던진 변수를 확인하는 방법이 있습니까?

null 값에 대한 모든 코드 줄을 수동으로 확인하고 싶지 않습니다.

+10

특정 변수가 아니지만 스택 추적에서 어떤 코드 행이 표시되는지 알려줘야합니다. 그게 많이 좁히지 않으면 명령문 당 적은 수의 작업을 고려해보십시오. –

+1

"모든 코드 행을 수동으로 확인하고 싶지 않습니다." 그런 다음 버그가있는 프로그램을 계속 작성할 것입니다. 함수가 널 (NULL) 일 수있는 매개 변수를 승인하고 널 (NULL)이 전달되면 프로그램이 충돌하는 경우, 값을 오류 점검하거나 예외를 처리합니다. null을 반환 할 수있는 함수를 호출하고 코드에서 null을 확인하고보고하지 않으면 예외가 발생합니다. –

+0

어수선 할 코드가 마음에 들지 않으면 AOP 프레임 워크 (http://www.postsharp.net/blog/post/Validating-parameters-field-and-properties-in-PostSharp-3)와 같은 것을 사용하십시오. 일을 공식화하려면 http://devjourney.com/blog/2014/02/12/code-contracts-part-1-introduction/에서 코드 계약을 선택할 수 있지만 먼저 경비/방어 프로그래밍이 코드 계약의 기본 요소라고 확신하십시오. 일. –

답변

1

실제로 매우 방어적인 스타일의 코딩을 사용하고 싶습니다. 이 같은 많은 문제에서 당신을 구할 수 있습니다. 예, 지루한 느낌이 들지만 다른 한편으로 nulls는 언제나 발생할 수 있습니다. 확인하지 않으면 응용 프로그램이 계속 충돌합니다.

단위 테스트를 작성할 때 같은 전술을 사용하는 것이 좋습니다. 당신은 엣지 케이스를 테스트하기로되어 있고 그 엣지 케이스들 중에는 널이나 빈 문자열을 전달하고 코드가 그 코드를 처리 할 수있는 것들이있을 것입니다.

관련 문제