簡體   English   中英

我應該如何處理長異常處理代碼

[英]How should I handle long exception handling code

我正在嘗試調用外部API。 我處理了四個或更多通話異常。

如果我打多個電話,代碼會很快增加。 我是否應該為每個處理異常並返回數據的此類調用編寫包裝器?

這是此類代碼的示例(這不是我的)。 調用user_search之后是異常處理。

注意:我沒有使用Rails

begin
@twitter = Twitter.user_search(name)
rescue Twitter::Unauthorized
  puts "Not authorized. Please check the Twitter credentials at the top of the script."
  break

rescue Twitter::BadRequest => e
  puts "Hit rate limit. Continuing scraping at #{e.ratelimit_reset}"
  sleep e.retry_after
  retry

rescue Exception => e
  puts "Something else went wrong:"
  puts e.message
end

我更改了問題的標題。 我認為問題更多是如何處理長時間的異常處理代碼。 在示例代碼中,假設我對twitter API進行了多次調用,然后進行了異常處理,似乎異常處理代碼干擾了實際工作的代碼讀取。

圍繞一段代碼編寫您的異常處理程序,這樣,如果該塊的第一行失敗,您將很樂意跳過所有代碼,直到該塊的最后一行。

如果異常使處理程序出現的整個方法的其余部分無效,請考慮讓異常冒泡到下一層。 不一定所有方法都必須使用您的方法。

我經常發現自己圍繞一行代碼編寫異常處理程序(具有合適的恢復代碼),但這不是規則。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM