2012-02-18 4 views

답변

6

가장 쉬운 방법은 다음과 같습니다

error('Some useful error message.') 

매트랩이 같은 오류 메시지에 식별자를 할당되어 행복하다 :

식별 정보는 오류 처리의 일부보고
error('toolsetname:other_identifying_information','Some useful error message here.') 

예를 들어 위의 각 호출 후에 lasterror을 실행 해보십시오.

2
+0

감사합니다. 나는 그것을 어떻게 놓쳤는 지 모릅니다. –

+3

웹 페이지가 너무 명확하지 않습니다. 답변에 샘플 코드를 추가하면 정말 좋습니다. – Oli

+0

공정하게, 가장 간단한 방법은 @Pursuit에서 제안한대로'error()'를 사용하는 것입니다. –

3

또한 사용할 수 있습니다

throw(MException('Id:id','message')); 

MException에 좋은 기능이있다, 그것은 sprintf로 사용할 수 있습니다 :

throw(MException('Foo:FatalError',... 
    'First argument of Foo is %s, but it must be double',class(varargin{1}))); 

바와 같이 @edric 제대로 주석이 sprintf 기능이 될 수 있습니다 양날 검. 일부 이스케이프 문자를 사용하면 원하는 것처럼 작동하지 않을 수 있습니다.

throw(MException('Foo:FatalError',... 
    'I just want to add a \t, no tab!')); 
+0

MException 생성자의 두 번째 인수는 문자열 리터럴이 아닌 * 형식 지정자 *입니다. (나는 과거에 잘못을 저질렀다. 다른 많은 사람들과 마찬가지로). – Edric

+0

@Edric, sprintf 기능을 사용 했습니까? –

+0

예, 맞습니다 - 사람들이 "MException (some : id ', ['Problem in : 'fname])"과 fname에 "\ t"(또는 더 나쁜 ...) 탭 문자로 변환됩니다. – Edric

관련 문제