2011-10-06 3 views
0
ex.Message = "ORA-20586: SOME TEXT SOME TEXT.\nORA-06512: at \"RMM.LOKAC\", line 116\nORA-06512: at line 2" 

catch (Exception ex) 
    MessageBox.Show(ex.Message); 
    return false; 
} 

ex.Message = "ORA-20586: SOME TEXT SOME TEXT.\nORA-06512: at \"RMM.LOKAC\", line 116\nORA-06512: at line 2" 

하지만 "SOME TEXT SOME TEXT"가 필요합니다. 어떻게하면 텍스트 만 읽을 수 있습니까?예외에서 사용자 지정 예외 및 구문 분석 메시지

ORA-20586은 http://www.dbmotive.com/support/oracle-error-codes/?type=ORA&errcode=20586

데이터베이스가 오라클 인 사용자 오류를 의미한다. 어떻게하면이 오류 메시지에서 "SOME TEXT SOME TEXT"를 읽을 수 있습니까?

답변

2

문자열을 추출하는 데는 여러 가지 방법이 있습니다. 문자열 분할, 정규식 분할 또는 문자열 색인 검색을 시도 할 수 있습니다.

+0

@senzacionale 죄송합니다! 나는 네가 원하는 걸 얻지 못했다. 데이터베이스 기본 레벨에서 사용자 정의 예외를 작성 하시겠습니까, 아니면 프로그램에서 정의할까요? – adatapost

+0

linq을 어떻게 사용할 수 있습니까? – senzacionale

+0

AVD 그냥 메시지를 인쇄하고 싶습니다. 사용자 정의 예외 일 필요가 없습니다. – senzacionale

0

항상 예외를 잡아 내고 사용자 친화적 인 메시지를 작성하는 것이 좋습니다. 가능한 경우 응용 프로그램의 기본 아키텍처를 노출하고 싶지 않습니다.

bool success = false; 
try { 
    // you code 
    success = true; // Notice: Last call of your try routine. 
} catch (Exception ex { 
    if (-1 < ex.Message.IndexOf("ORA-20586")) { 
    MessageBox.Show("user error"); 
    } else { 
    MessageBox.Show(ex.Message); 
    } 
} 
return success; 
관련 문제