Java正向流和反向流异常处理

Java正向流和反向流异常处理,java,exception,flow,stoppropagation,Java,Exception,Flow,Stoppropagation,我正在编写一个Java代码,通过传递对象id来获取对象信息。我的案例如下: 1.并非所有对象ID都必须具有表示返回null的信息。 2.但是如果ID有一个信息,那么我将返回该对象。所以我在这里做空检查 如果我写了一个else条件抛出KalturaApiException,那么它抛出异常说EntryId not found并在那里停止执行。我的问题是,它应该继续以正向流运行,并且应该在没有任何信息的情况下记录所有ID。如何处理此场景以及如何捕获此异常。请帮我解决这个问题。提前谢谢 try { en

我正在编写一个Java代码,通过传递对象id来获取对象信息。我的案例如下: 1.并非所有对象ID都必须具有表示返回null的信息。 2.但是如果ID有一个信息,那么我将返回该对象。所以我在这里做空检查

如果我写了一个else条件抛出KalturaApiException,那么它抛出异常说EntryId not found并在那里停止执行。我的问题是,它应该继续以正向流运行,并且应该在没有任何信息的情况下记录所有ID。如何处理此场景以及如何捕获此异常。请帮我解决这个问题。提前谢谢

try {
entryInfo = getMedia(entry);
                            if (entryInfo != null) {
//Here I am retrieving all the information from the object and setting to one more object.
}
}catch(KalturaApiException e){
 e.getMessage();
}
内部getMedia方法:

try {
        entryInfo = mediaService.get(entryId);
        if (entryInfo != null) {
            return entryInfo;
        }
    } catch (KalturaApiException e) {
        e.getMessage();
    }
    return entryInfo;

如果我没弄错的话,mediaService.get也会抛出异常。 我想你不必担心。所以在getMedia中,你可以

return mediaService.get(entryId);
null也是一个对象,在另一个方法中执行null检查。异常也将在您的第一个方法中捕获。(不要忘记sign
getMedia(长id)抛出异常{…}


如果您准备处理来自getMedia的空结果,为什么要在getMedia中引发异常?如果不存在的媒体有时出错,有时不出错,则有两个调用:一个调用返回null,如getMedia,另一个调用抛出,如getExistingMedia(),这实际上会在第一段代码的
try
块体中抛出一个异常错误。这个问题对我来说没有多大意义。@Arkadiy-你的意思是说我可以有两个调用,一个是获取所有id的信息,另一个是获取所有id的信息,而inturn无法访问日志。这里不需要处理异常。如果有任何错误,请纠正我。现在我不处理getMedia方法中的异常。getMedia(字符串entryId)抛出KalturaApiException{KalturaMediaService=client.getMediaService();返回mediaService.get(entryId);在第一个方法中,我正在执行null检查,因此当它为null时,它将捕获并给出消息。但是它不会继续执行下一个执行,所有剩余的id都有信息。我在for循环中有此代码。for(String entry:mediaList){if(entry!=null){entryInfo=getMedia(entry);if(entryInfo!=null){现在我没有在getMedia方法中处理异常。getMedia(String entryId)抛出KalturaApiException{KalturaMediaService mediaService=client.getMediaService();返回mediaService.get(entryId);在第一个方法中,我正在执行null检查,因此当它为null时,它将捕获并给出消息。但是它不会继续执行下一个执行,所有剩余的id都有信息。我在for循环中有此代码。for(String entry:mediaList){if(entry!=null){entryInfo=getMedia(entry){if(entryInfo!=null){
try {
entryInfo = getMedia(entry);
if (entryInfo != null) {
// do something
}
}catch(KalturaApiException e){
 e.getMessage(); //log information, it's better to use logger (log4j for example)
}