다음은이 주제에 관한 이전의 두 질문은 다음과 같습니다C#의 다중 유형 catch 블록에 사용할 수있는 구문은 무엇입니까?
오늘 일하는이 적절한 구문이 기능은 이제까지 C# 언어에 추가해야 될 줄 알았는데 . 누구든지 그것에 대해 의견이 있습니까?
e
유형은 나열된 모든 예외 유형의 기본 유형 또는 인터페이스 여야합니다.
편집 :이 예에서, 캐치 블록 처리 중 또는 ArgumentNullException
ArgumentOutOfRangeException
e
및 호출 형 ArgumentException
의 변수에 예외 인스턴스를 놓는다. 나열된 두 가지 이외의 다른 유형의 ArgumentException
은 처리하지 않습니다. ,
과 as
의 연관성에 대해 혼란이 있었다고 생각합니다.
편집 2 :e
의 유형의 변수에 대한 모든 업 캐스팅 나열된 예외, 다음 코드는 빠른 (잠재적으로 크게) 현재의 문법보다는 그것을 만드는, 어떤 캐스트 또는 명시 적 유형 검사없이 MSIL로 깨끗하게 컴파일하는 경우 ArgumentException
을 붙잡고, 의도 한 두 가지가 아닌 경우 throw;
을 붙잡습니다. 문제는 Exception
을 잡고 다른 유형 인 경우 처리하고 재실행 할 수있는 두 가지 유형을 확인하는 경우 더욱 분명합니다.
try
{
}
catch (ArgumentNullException, ArgumentOutOfRangeException as ArgumentException e)
{
}
downvoters가 왜 이것을 downvoted했는지 말할 수 있습니까? 문제? – Dykam
유일한 질문은 "누구나 그것에 대해 의견이 있습니까?"입니다. 대답은 : "그렇습니다, 우리 중 대부분은 매우 유명한 사람들입니다." "진짜"질문, 또는 GTFO. – abelenky
[다른 종류, 기능적 스타일] (http://community.bartdesmet.net/blogs/bart/archive/2008/01/06/exception-handling-in-functional-style.aspx) : 음, 꽤 깨끗한 것은 아닙니다. ** 그리고 이것은 작동합니다. ** – nawfal