이것저것
[C#] System.NullReferenceException
tobee
2022. 12. 20. 19:17
728x90
C#을 접해 보니 거의 dll 의 덩어리라고 해도 과언이 아닌 것 같습니다.
내가 프로그램을 만들었다고 하면, 적어도 50개 이상의 dll 을 사용하고 있다라는 생각도 들구요
비주얼스튜디오도 잘 안써보다 쓰니까...모르는 기능도 많고 말입니다.
뭔가를 만들때 당황스러운 경우가 생기기 시작하더군요
예를들면, 내가 만들지도 않은 dll 의 어떤 메서드에서 System.NullReferenceException 이 발생 하는 데,
그냥 지나가 버려 어느 부분에서 오류가 나는 지 알 수 없어서 헤메이고 있었던 때가 생각이 납니다.
스택오버플로우에서 찾았습니다. 뭐, 원래는 마이크로소프트 홈페이지에서 찾아야 하지만 어디면 어떨까요 ^^
static void Main(string[] args)
{
var mA = new DoubleMatrix(100, 200, 1.5);
var mB = new DoubleMatrix(200, 50, 1.2);
var mC = NMathFunctions.Product(mA, mB);
Console.WriteLine(mC[5, 6]);
Console.WriteLine("Computation finished");
Console.ReadLine();
}
위 코드에서
- DoubleMatrix 클래스는 외부 라이브러리인 CenterSpace의 NMath 라이브러리이며,
- NMath.dll 을 링크 시켜서 사용하고 있다고 합니다.
그런데, 문제는 위 코드를 실행 할 때마다, System.NullReferenceException 일어 난다는 것입니다.

위의 경우와 비슷한 경우가 저한테도 발생 했는 데, System.NullReferenceException 만 출력 창에 나타나지만 잡히지 않아서 애를 먹었습니다.
답변의 내용은 두가지 적용 인데요.

1의 경우에는 VS 2019 기준으로 다음과 같이 설정 해 줍니다.


2번의 경우에는 다음과 같이 디버그 > 창 > 중단점 을 선택 해 줍니다.

그런 다음 NullRef 로 해당 예외를 찾아 줍니다.

그리곤 해당 예외에 체크를 해 주는 것입니다. 그렇게 되면 아래와 같이 예외를 잡아 줍니다.

이상.
728x90