C#: 예외를 제기하거나 던지십니까?
-
13-09-2019 - |
문제
나는 이것이 아마도 중요하지 않다는 것을 알고 있지만, 무엇이 올바른지 알고 싶습니다.
코드에 일부 버전이 포함 된 경우 throw new SomeKindOfException()
. 우리는이 코드가 잠재적으로 예외를 제기 할 수 있다고 말합니까? 아니면 예외를 던져?
키워드는입니다 throw
, 그래서 나는 그것에 대해 기대하고 있지만 예외를 제기하는 것은 또한 많이 사용됩니다 ...
그들은 일종의 다른 의미를 가지고 있습니까? 그들 중 하나가 다른 사람과의 차이를 암시합니까? 아니면 정확히 같은 의미입니까?
해결책
C# 용어에서 인상 사건의 맥락에서 사용됩니다 던지기 예외의 맥락에서 사용됩니다.
개인적으로 나는 생각한다 throw/catch
조합은보다 아름답습니다 raise/catch
.
다른 팁
C#에 대해서는 말할 수 없지만 C ++에서 "Rise"가 이미 표준 함수 이름으로 간주 되었기 때문에 "Throw"가 선택되었습니다.
나는 생각한다 던지다 더 나은 것이고, 두 용어는 상호 교환 가능합니다. 같은 단어를 반복하지 않도록 일부 텍스트에서 두 번 사용해야하는 경우 매우 유용합니다. 그러나 그것은 기술적 인 글쓰기에 필요하지 않은 스타일입니다 (그러나 여전히 좋은 것은).
다양한 언어의 용어는 '던지기'를 선호합니다. 그리고 나는 이것이 사용 된 키워드이며 컴파일러/언어 문서는 항상 '던져진'예외를 언급한다는 점을 고려하면 'Throw'가 훨씬 더 의미가 있다는 데 동의합니다.
그러나 거대 예외의 뱃속에서는 실제로 높은, 던지지 않았습니다. 당신이 디버거에서 자신을 Exception_record 그런 다음 당신은의 용어로 이야기합니다 세, 특정 클래스의 컴파일러/언어 예외 (EH, CLR, VCPP)는 많은 맛 중 하나 일뿐입니다. 페이지 결함 및 스택 오버플로와 같이 제기 된 예외가 예외는 조건의 사용자 모드를 '알리는'커널에 의해 '눈에 띄는 조건'이 아니라고 생각합니다. 따라서 용어는 그 맥락에서 더 의미가 있습니다.
던지거나 올리는 것은 괜찮아 보인다. 그들은 나에게 똑같이 의미한다. 나는 그것을 쓰지 않을 것이지만, 내가 말할 때, 나는 보통 '예외'라고 말합니다.
이벤트의 경우 '이벤트를 발사'하거나 '이벤트를 올리기'를 사용합니다.