2011-09-19 2 views
2

사용자 지정 오류 :angel이라는 angel이라는 웹 프레임 워크가 어떤 캐치되지 않는 예외 빨간색 오류 경고 표시 메시지

내부 오류를

관리자

을 알려 주시기 바랍니다 ...

Vaadin 설명서는 how to set a custom error handler을 설명합니다.

사용자 지정 오류 처리기를 제공하면 기본 빨간색 오류 경고가 계속 표시됩니다. 사용자가 해당 오류 경고를 닫으면 사용자 지정 오류 경고가 나타납니다. 맞춤 오류 알림 만 표시하고 싶습니다. 기본 "내부 오류"경고를 어떻게 비활성화 할 수 있습니까? 다음은

내 angel이라는 Application 클래스의 재정의 terminalError 방법입니다 : 당신이 super.terminalError(event)를 호출하기 때문에

@Override public void terminalError(Terminal.ErrorEvent event) { 
    // Call the default implementation. 
    super.terminalError(event); 

    // Some custom behaviour. 
    if (getMainWindow() != null) { 
     getMainWindow().showNotification(
       "An unchecked exception occured!", 
       event.getThrowable().toString(), 
       Notification.TYPE_ERROR_MESSAGE); 
    } } 

답변

1

모두 작업을 수행됩니까?

또는 구성 요소 오류 인 set in this method을 삭제해야합니까?

+0

super.terminalError (이벤트)에 대한 호출을 주석 처리하더라도 내재 된 "내부 오류"가 표시됩니다 – byneri

+0

게시 한 링크에 사용 된 terminalError (Terminal.ErrorEvent 이벤트) 메서드를 사용할 때 여전히 기본 제공 "내부 오류" – byneri

+0

아님 죄송합니다. 이 메소드를 참조하여 구성 요소 오류를 설정하고 있음을 보여줍니다. 제 질문은 그 오류를 제거하거나 제거 할 수 있습니까? 'setComponentError (null)'와 같습니다. –

0

Paul이 맞습니다. super에 전화를 끊어야합니다.

setErrorHandler(this); // dont know why it's doesn't work without this instruction. 

을 나는 super.terminalError()에 대한 호출없이 terminalError 메소드를 오버라이드 (override) :

나는 응용 프로그램 내 하위 클래스에서 다음과 같은 한 작동합니다.

감사 에릭

+0

super.terminalError (이벤트)에 대한 호출을 제거하고 setErrorHandler (this)를 설정합니다. init() 메소드에서.여전히 "내장 오류"메시지가 표시됩니다. 내 terminalError 메서드는 호출 문을 얻습니다. 로그 문을 볼 수 있기 때문입니다. – byneri

2

당신은 CustomizedSystemMessages 개체를 반환됩니다 Application 클래스에서getSystemMessages라는 정적 메소드를 정의해야합니다. setInternalErrorNotificationEnabled 메서드를 false 매개 변수 "internal error"와 함께 호출하면 사라집니다. 이렇게하면 다른 오류 유형에 대해서도 Vaadin의 기본 제공 알림 메시지를 비활성화 할 수 있습니다.

setInternalErrorURL을 호출하여 URL을 제공하면 내부 오류가 발생할 때마다 Vaadin이 페이지를 해당 URL로 리디렉션합니다. 해당 페이지에 오류 메시지를 표시 할 수 있습니다. 이 페이지는 Vaadin 창일 수도 있습니다.