# Ruby 小知識05:錯誤處理機制淺談 ###### tags: `Ruby` 當我們的code出錯時,程式會直接停下來噴錯,一開始可能還比較好抓錯,但是當我們的程式服務越長越大或是執行了一段時間有新成員加入,這時候就越來越難去抓錯 抑或是如果使用者在使用服務時故意輸入會讓程式無法產生結果的資訊(例如提款領0元,可能會產生一些錯誤) 這時候begin rescue的機制可以有效地在程式要噴錯時,被我們引導去另一個想要呈現的結果,直接看就比較有感覺了 ```ruby= weird = 10/1 # 如果跑這段code會出現ZeroDivisionError ``` 或是有個陣列 happy = [1, 2, 3, 4, 5] 但是你卻 ```ruby= happy["yo"] # 會出現TypeError ``` 但與其你讓程式直接噴個ZeroDivisionError或是TypeError,可以用用看begin rescue機制 導入開始的兩個例子 ```ruby= happy = [1, 2, 3, 4, 5] begin weird = 10/1 happy["yo"] rescue ZeroDivisionError puts "0不能放在分母阿同學" rescue TypeError puts "沒有東西叫做第yo個元素拉" end ``` *** [參考資料] [Rails的錯誤處理機制begin、rescue和Exception](https://medium.com/@pk60905/rails%E7%9A%84%E9%8C%AF%E8%AA%A4%E8%99%95%E7%90%86%E6%A9%9F%E5%88%B6begin-rescue%E5%92%8Cexception-ab71156a24a2) [Day26 - Ruby的錯誤處理機制 Rescue](https://ithelp.ithome.com.tw/articles/10206200) [Exceptions, Catch, and Throw](https://ruby-doc.com/docs/ProgrammingRuby/html/tut_exceptions.html)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up