2017-12-05 18 views
-1

나는 목록을 얻기를 위해 API 전화 retrofit를 사용하지만 데이터 없음 내가 onErrorGetOccasion 메소드를 호출하지하고 때 점에서 나는 HttpException있어 그림과 같이 그것을 위해 내가 그것을 처리 코드에서.APP 충돌 : 치명적인 예외 : io.reactivex.exceptions.CompositeException

지금 내 문제는 내가

Exception: io.reactivex.exceptions.CompositeException this error and app crash. 

이것에 대한 어떤 제안 치명적인 가지고 onErrorGetOccasion 방법에 때때로? 당신의 오류 처리기 자체가 스트림에 던져 오류를 처리하는 것 예외가 발생하는 경우

//Get Occasion API 
private void callGetOccasionAPI(String pageIndex, boolean isDialogShown) { 

    if (NetworkUtils.isConnected()) { 
     if (mPageCount == 1 && isDialogShown) 
      showProgressDialog(mContext); 
     RetrofitAdapter.createRetroServiceWithSessionToken(mContext) 
       .getOccasion(pageIndex) 
       .subscribeOn(Schedulers.io()) 
       .observeOn(AndroidSchedulers.mainThread()) 
       .subscribe(this::onSuccessGetOccasion, this::onErrorGetOccasion); 
    } else { 
     SnackBarUtils.defaultSnackBar(getString(R.string.error_no_internet), mRootView); 
    } 
} 

private void onErrorGetOccasion(Throwable throwable) { 
    hideProgressDialog(); 
    if (throwable instanceof HttpException) { 
     ResponseBody body = ((HttpException) throwable).response().errorBody(); 
     Utils.setLog(body != null ? body.toString() : null); 
     try { 
      if (body != null) { 
       if (body.string().contains(mContext.getString(R.string.msg_event_not_found))) { 
        if (mPageCount == 1) { 
         mTxtRecordNotFound.setVisibility(View.VISIBLE); 
         mRecyclerView.setVisibility(View.INVISIBLE); 
        } 
       } else { 
        SnackBarUtils.errorSnackBar(getString(R.string.error_api), mRootView, null); 
       } 
      } 

     } catch (IOException e) { 
      e.printStackTrace(); 
      Crashlytics.log(e.getMessage()); 
     } 
    } 
} 

답변

1

CompositeException은 일반적으로 발생합니다.

오류 처리 코드에서 예외가 발생하지 않는지 확인하십시오.

일반적으로 스택 추적에는 CompositeException 아래에 근본 원인이 있으며 접두사는 Caused by입니다.

+0

처리 방법은 무엇입니까? –

+0

NullPointerException 또는 캐치 대상 IOException과 같이 고정해야하는 것이면 기본 예외가 무엇인지 확인해야합니다. 전체 스택 추적을 게시하면 도움이됩니다. – elmorabea