使用 Result 進行結構化錯誤處理
以下程式碼實作一個非常簡單的運算式語言剖析器,但會藉由恐慌來處理錯誤。請重新編寫,改用慣用的錯誤處理機制,並將錯誤傳播至 main
的回傳陳述式。您可以自由使用 thiserror
和 anyhow
。
提示:首先請修正 parse
函式中的錯誤處理機制。確認一切正常運作後,更新 Tokenizer
即可實作 Iterator<Item=Result<Token, TokenizerError>>
,並在剖析器中處理。
以下程式碼實作一個非常簡單的運算式語言剖析器,但會藉由恐慌來處理錯誤。請重新編寫,改用慣用的錯誤處理機制,並將錯誤傳播至 main
的回傳陳述式。您可以自由使用 thiserror
和 anyhow
。
提示:首先請修正 parse
函式中的錯誤處理機制。確認一切正常運作後,更新 Tokenizer
即可實作 Iterator<Item=Result<Token, TokenizerError>>
,並在剖析器中處理。