第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

發(fā)生錯(cuò)誤時(shí)如何處理項(xiàng)目?

發(fā)生錯(cuò)誤時(shí)如何處理項(xiàng)目?

慕桂英3389331 2022-10-20 14:58:17
考慮以下代碼:    Collection<String> foos = Arrays.asList("1", "2", "3", "X", "5", "6", "7", "8", "9", "10");    Flowable<Integer> integerFlowable = Flowable.fromIterable(foos).map(s -> Integer.parseInt(s)).onErrorReturnItem(-1);    PublishProcessor<Integer> processor = PublishProcessor.create();    processor.map(i -> 2 * i).subscribe(i -> System.out.println(i), e -> System.out.println("error!"));    integerFlowable.subscribe(processor);到達(dá)“X”時(shí)處理結(jié)束。我如何指示 RxJava 繼續(xù)處理其余的項(xiàng)目?
查看完整描述

2 回答

?
繁華開滿天機(jī)

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果嘗試用給定值(例如 -1)替換所有“無效”輸入,您可以提供不同的映射器函數(shù)。


Flowable<Integer> integerFlowable = Flowable.fromIterable(foos)

    .map(s -> {

        try {

            return Integer.parseInt(s);

        } catch (NumberFormatException e) {

            return -1;

        }

    });

您還可以在創(chuàng)建 Flowable 之前刪除所有“無效”輸入。


Collection<String> foos = Arrays.asList("1", "2", "3", "X", "5", "6", "7", "8", "9", "10");

Collection<String> numbers = foos.stream().filter(s -> {

    try {

        Integer.parseInt(s);

        return true;

    } catch (NumberFormatException e) {

        return false;

    }

}).collect(Collectors.toList());


查看完整回答
反對(duì) 回復(fù) 2022-10-20
?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊

通常,調(diào)用層次結(jié)構(gòu)中的上層方法應(yīng)該以有用的方式處理異常(不僅僅是捕獲)。通常這意味著向用戶顯示有用的錯(cuò)誤消息。

對(duì)于您的用例,檢查字符串是否為數(shù)字就足夠了:

if (s.matches("-?\\d+")) {
    Integer.parseInt(s)
    }

這是一個(gè)基本示例,可能不會(huì)涵蓋您的所有用例(例如前導(dǎo)零或溢出之類的東西)。


查看完整回答
反對(duì) 回復(fù) 2022-10-20
  • 2 回答
  • 0 關(guān)注
  • 97 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)