2015-05-14 3 views
1

Я хочу передать объект, получая исключение и получая от catch. Я имею UserDataException простираться от ExceptionJava Exception throw object and get object from catch

throw new UserDataException("Media uploaded failed",mediaDO, dupkExp); 

mediaDO является объектом.

, если это возможно, чтобы получить этот mediaDo объект из catch заявления

catch (UserDataException uExp) { 

    } 

UserdataException Calss:

public class UserDataException extends Exception { 

private static final String ERROR = "Database Transaction Error: "; 
private static final String DKERROR = "Duplicate Key Error"; 

/** 
* 
*/ 
private static final long serialVersionUID = 6209976874559850953L; 

/** 
* 
*/ 
public UserDataException(String message, Throwable throwable) { 
    super(message, throwable); 
} 

public UserDataException(String message) { 
    super(message); 
} 

/** 
* <code>UserDataException</code> thrown with message and throwable object 
* 
* @param schdulerData 
* @param message 
* @param throwable 
*/ 
public UserDataException(String message, SchedulerData schdulerData, final Throwable throwable) { 

    super(ERROR + message, throwable); 
} 

/** 
* <code>UserDataException</code> thrown with message and throwable object 
* 
* @param schdulerData 
* @param message 
* @param throwable 
*/ 
public UserDataException(String message, MediaDO mediaDO, final Throwable throwable) { 

    super(DKERROR + message, throwable); 
} 

}

Пожалуйста, помогите, если это возможно ..

+0

U может обеспечить геттер внутри класса исключения .. –

ответ

5

Вы должны хранить ссылка на этот объект в ваш класс исключения и использовать поглотитель, чтобы получить его:

private MediaDO mediaDO; 

public UserDataException(String message, MediaDO mediaDO, final Throwable throwable) { 
    super(DKERROR + message, throwable); 
    this.mediaDO = mediaDO; 
} 

public MediaDO getMediaDO() 
{ 
    return mediaDO; 
} 

Затем в блоке поймать:

catch (UserDataException uExp) { 
    MediaDO mediaDO = uExp.getMediaDO(); 
    ... 
}