[英]C++ ifstream exception masks for C#
我如何將這行代碼從C ++轉換為C#?
std::ifstream in;
in.exceptions(std::ios_base::badbit); //*THIS LINE*
根據此頁面 ,上一行代碼為流設置了新的異常掩碼,並清除了任何當前的錯誤狀態標志。 我還猜測這是上面鏈接頁面中std::ios::exceptions
的“第二種形式”。
由於我對C#的FileStream
類缺乏經驗,由於缺少類似內容,我一直感到非常困惑。
如果發生任何基礎I / O錯誤,則FileStream.Read
和FileStream.Write
方法都將引發IOException
。 這是默認行為。
與C ++不同,異常引發是C#中錯誤處理的預期形式。 因為異常從一開始就是.NET的一部分,所以與C ++一樣,圍繞流使用異常沒有任何爭執 。
大多數(如果不是全部).NET框架標准庫都會在異常狀態下引發異常。 我能想到的唯一例外是使用Try-Parse模式時 ,該模式對於預期的行為非常明確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.