RxJava occurred when trying to propagate error to Observer.onError

本文介绍在使用Rx+Retrofit过程中遇到的问题及解决方案,特别是如何正确处理自定义异常,如PayException,确保应用不会因后台错误而崩溃。

在使用Rx+Retrofit的时候,使用了自定义的Exception,但是真正返回的Throw,并不是我要强转的错误类,于是乎,就各种崩溃,用 try catch 也没有作用,就是告诉标题的错误,这个有点坑。
具体的情况:
在写支付回调的时候,我写了一个PayException,本意是想把支付中的各种错误,价格不对,签名错误,参数异常等等都暴露出来,但是问题在于,后台报错了,返回的一堆字符串,然后自然就不是正常流程的PayException的,然后直接就崩溃了,修复的代码,主要看OnError部分的异常处理

OrderApiHelper
                .retrofitOrderPay(
                        this,
                        -1,
                        dynamicAdapter.current_personalDynamic.share_id,
                        AppConfig.DYNAMIC_TYPE_REDPACKAGE_PIC,
                        channel_type,
                        FreshApplication.debug ? "0.01" : dynamicAdapter.current_personalDynamic.price,
                        "",
                        "",
                        "",
                        "",
                        "",
                        new ISuccessThrowBaseData() {
                            @Override
                            public void success(Object data) {
                                retrofitGetData();
                            }

                            @Override
                            public void error(Throwable throwable) {
                                mProgressDialog.dismiss();
                                if (throwable instanceof PayException) {
                                    PayException payException = (PayException) throwable;
                                    ToastUtil.toast(getApplicationContext(), payException.tip);
                                } else {
                                    NetUtils.checkHttpException(getApplicationContext(), throwable);
                                }
                            }
                        }
                );
"An HTTP error occurred when trying to retrieve this URL" 是一个网络错误提示,意味着在尝试访问指定的URL时出现了错误。根据引用和引用的描述,这个问题可能与conda的源配置有关。通常,这个错误可能是由以下几个原因导致的: 1. 网络连接问题: 您的计算机可能无法连接到指定的URL。请确保您的网络连接正常,并且能够访问该URL。 2. Conda源配置问题: 您的conda源配置可能存在问题。请检查您的conda源配置,确保使用的是正确的URL地址。 解决这个问题的方法可以尝试以下几个步骤: 1. 检查网络连接: 确保您的计算机连接到互联网,并且能够正常访问其他网站。如果您的网络连接存在问题,请尝试重新连接或联系网络管理员解决。 2. 检查conda源配置: 打开终端或命令提示符,并在命令行中输入以下命令,查看当前的conda源配置: ``` conda config --show-sources ``` 确保清华源已正确配置。如果需要更换为其他可用源,请参考官方文档或相关指南。 3. 更新conda: 确保您正在使用最新版本的conda。可以使用以下命令来更新conda: ``` conda update conda ``` 4. 清除缓存: 有时候,conda缓存可能会导致问题。您可以尝试清除缓存,然后重新尝试操作。使用以下命令清除conda缓存: ``` conda clean --all ``` 5. 重新尝试操作: 在进行上述步骤后,您可以尝试重新运行您的操作,看是否问题得到了解决。 如果问题仍然存在,您可以尝试搜索并参考相关的错误信息、官方文档或社区讨论来获取更多帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [conda 解决An HTTP error occurred when trying to retrieve this URL.(已经更新清华源但也无解的解决方法)](https://blog.csdn.net/viki_2/article/details/118893250)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [一直Solving enviroment 最后报错CondaHTTPError: HTTP 000 CONNECTION FAILED for url](https://download.csdn.net/download/weixin_38503448/14037142)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值