관리 메뉴

KorSA

C# 개발 팁 본문

Development Experience/C#

C# 개발 팁

Praiv. 2020. 3. 17. 19:05
320x100

1. Exception 이 발생할 경우 우리는 흔히 Try - Catch 문을 사용하여 Exception을 잡은 후 로그를 찍어본다.

   나는 보통 Exception 자체의 Message 와 Exception 내부에 존재하는 InnerException의 Message를 함께 찍었다.

 

   그런데 어느날부터 NullReference가 뜨면서 프로그램이 죽는 것이었다.

   이유는 바로 InnerException이 null 인데도 null 체크없이 InnerException.Message 에 접근하려 했던 것이다.

   이미 한번 Try-Catch가 진행된 상태에서 Exception 이 또 발생하니 프로그램은 당연히 죽는 것이었다.

   InnerException을 사용할 땐 꼭 null 체크를 하자.

 

2. Caliburn의 EventAggregator 사용할 때

   Message를 받는 쪽에서는 eventAggregator.subscribe(this) 를 선언해 주어야 하고,

   Message를 주는 쪽에서는 eventAggregator.PublishOnUIThread(message) 를 통해 Message를 날려주어야 한다.

 

3. 소켓 통신을 할 때 마지막 메시지를 보내고 나서 소켓을 바로 끊어버리면 안된다.

   왜냐하면 마지막 메시지를 받는 쪽에서는 메시지 받는 작업을 완료해야 하는데 소켓이 끊겨버리면 

   Socket Exception이 발생하면서 마지막 메시지를 제대로 못 받기 때문이다.

 

 

728x90
728x90
Comments