2010-02-18 1 views
3

맵핑 프로그램 MapInfo Pro 용 .Net SDK를 작성 중이지만 mapinfo는 COM void Do(string cmd)string Eval(string cmd) 이상의 두 가지 메서드 만 사용합니다. 이 메소드 중 하나를 사용하고 무언가를 수행하면 오류 메시지와 함께 COMException을 리턴하고 MapInfo에서 오류 코드를받습니다.많은 다른 오류 코드에 대한 예외 클래스 만들기

이제
418 "Table not found." 

내가보다는 전체 예외를 의미의 어떤 종류를 던져 싶은 사람들이 다음 잡아야 번호와 메시지 단지 예외에 if 블록을 사용 : 그래서 예를 들어 오류 메시지는 다음과 같습니다 어떤 오류인지 확인하십시오, 그들은 단지 그들이 잡기를 원하고 뭔가 의미있는 것을하기를 원한다고 말합니다. 뭔가가 TableNotFoundException입니다.

가장 큰 문제는 현재 1999 가능한 오류 메시지가 있다는 것입니다. 이제 모든 오류에 대해 예외 클래스가 필요하지 않습니다.

SDK의 아이디어는 사람들이 내 개체와 방법을 사용하는 대신 DoEval (원하는 경우 사용할 수 있음)입니다.

해야하는 I, 어디서나 내가 가야 어떤 오류 알고 있기 때문에 내가 DoEval 오류 코드를 확인하고 거기에서 전체 의미를 더 뭔가를 던져 다음 시도 캐치를 사용하여 전화를 내 SDK에서

  • .

또는

  • COMException이 오류 코드를 조회하고 거기에서 meaningfull 오류가 발생 슬로우되면 나는 DoEval 그 하나님 조회리스트 였을 있나요? 내가 시도의 catch 블록에서 DoEval 모든 호출을 래핑 할 필요가 없습니다 의미 까다로운 일의

비트 그래서 난 사람들이 그것을 이해할 수 있기를 바랍니다 설명 (전화가 많이있다).

감사합니다.

답변

3

DoEval에 대한 호출을 MapInfo 오류를 포착하는 자체 함수로 래핑하십시오.

오류 유형이 너무 많으므로 더 자세한 설명이 포함 된 이름을 사용하여 열거 형을 만들거나 사전에 오류 번호를보다 익숙한 이름으로 매핑하는 사전을 만들 수 있습니다 (원본이 충분하지 않은 경우). 예외 클래스, 오류 번호 및 설명을 포함하는 하나의 예외 클래스를 사용하는 것이 좋습니다. 사용자는 DoEval을 직접 사용할 수 있으므로이 오류 번호를 처리하는 방법을 알아야합니다.

또는 몇 가지 계층 적 예외 유형을 생성하고 어떤 것을 던지기로 결정할 수 있습니다 (사전에 0-1999 => 일치하는 예외 유형이 필요합니다). 그런 식으로 사용자는 어떤 유형의 잡을 오류.

+0

++ 그가 말한 것, 특히 작은 예외 계층 구조에 관한 부분. – Dustman

0

AndiDog에 따르면 몇 가지 예외 클래스를 만들어 수천 개의 오류를 적절한 유형으로 그룹화합니다. 혹시라도 원래 오류 번호를 전달해야합니다.

당신이 그 일을하는 동안 this article을 읽으면 그 그룹이 어떻게 구성 될지 알 수 있고, 어떤 그룹을 붙잡고 싶지 않은지 알 수 있습니다.

+0

누군가 SEO 문제가 있습니까? 링크 텍스트를 nofollows로 변경하는 이유는 무엇입니까? – Dustman

관련 문제