2009-06-12 6 views
11

이 부분이 실제로 중요하지는 않지만 올바른 부분을 알고 싶습니다.C# : 예외를 발생 시키거나 throw합니까?

코드 조각에 throw new SomeKindOfException()의 일부 버전이 포함되어있는 경우. 이 코드가 잠재적으로 예외를 발생시킬 수 있다고 말합니까? 아니면 예외를 던지시겠습니까?

키워드가 throw, 그래서 나는 가지 그쪽으로 생각이 기울고하고, 또한 많이 사용되는 예외를 인상 ...

은 다른 의미의 어떤 종류가 있습니까? 그들 중 하나가 다른 것의 차이를 연상 시키는가? 아니면 정확히 같은 것을 의미하는 두 단어입니까? 을 제기 C 번호 용어에서

+0

루비와 관련된 토론 : http://stackoverflow.com/questions/51021 –

답변

25

는, 예외의 맥락에서 사용되는을 던지는 이벤트와 의 맥락에서 사용된다.

개인적으로는 의 조합이 raise/catch보다 더 아름답다고 생각합니다.

+0

아, 물론, 전적으로 동의합니다. 이제는 완전히 이해가됩니다! 이 문제를 해결해 주셔서 감사합니다 :) – Svish

+3

C#은 "null 허용되지 않는 형식의 연산자의 nullable 버전 제공"을 의미하는 "리프트"를 사용하고 "클로저의 필드로 로컬 변수 변환"을 의미하는 "호이스트" 수업". 그래서 C#에서는 물건을 올리고, 들어 올리거나 들어 올릴 수 있습니다. 그리고 그들은 모두 다른 것을 의미합니다. –

3

C#에서는 말할 수 없지만 C++에서는 "raise"가 이미 표준 함수 이름으로 사용 되었기 때문에 "throw"가 선택되었습니다.

1

나는 을 던집니다.이 더 좋다고 생각합니다.이 두 용어는 서로 바꿔 쓸 수 있습니다. 동일한 텍스트를 반복하지 않도록 텍스트에서 두 번 사용해야하는 경우 매우 유용합니다. 그러나 기술적 인 글쓰기에는 필수적이지 않은 스타일 스틱 스 (그러나 여전히 가지고있는 좋은 점).

+2

당신은 영어로 글을 쓰는 것이 옳았지 만, 기술적 인 글에서 일관되게 같은 단어를 사용하는 것이 더 낫습니다. 그렇지 않으면 독자가 약간의 차이가 있다고 생각할 수 있습니다. – stivlo

0

던져 넣거나 올리면 나에게도 똑같이 들립니다. 나는 그것을 쓰지 않을 것이다. 그러나 내가 말할 때, 나는 보통 '척을 예외로한다'라고 말한다.

이벤트의 경우 '이벤트 발생'또는 '이벤트 발생'중 하나를 사용합니다.

+0

"Fire"는 물론 일반적인 이벤트 용도입니다. 용어 가이드 라인을 작성할 때 팀은 "불"이 불필요하게 비뚤어진 것처럼 보였으므로 "불"을 피하여 "모금"을 제안했습니다.내 개인적인 견해로는 이것은 다소 어리 석다는 것이지만, "레이즈 (raise)"는 괜찮습니다. 우리는 하나 또는 다른 것을 표준화 할 수도 있습니다. –

1

다양한 언어의 용어는 '던짐'을 선호합니다. 그리고 나는 '던짐'이 키워드가 사용되고 컴파일러/언어 문서가 항상 '던져 질'예외를 참조한다는 점을 감안할 때 훨씬 의미가 있습니다.

그러나 예외적으로 예외는 배타적으로 Raised입니다. EXCEPTION_RECORD을 쳐다 보는 디버거에서 충분히 깊숙이 발견되면 SEH이라는 용어로 말하면서 특정 클래스의 컴파일러/언어 예외 (eh, clr, vcpp)가 많은 예외 중 하나에 불과합니다. 나는 페이지 오류와 스택 오버 플로우와 같은 예외가 발생한 곳의 원래 조건이 조건에 대한 사용자 모드를 '알려주고'사용자 코드가 자신에게 '던지고'있는 예외가 아니라는 조건을 '알아 차 렸습니다'라고 추측합니다 , 그 용어는 그 맥락에서 더 의미가 있습니다.

관련 문제