# 例外處理

在上一篇中的範例，因為在程式第7行就已把例外拋出，因此從第8行開始就不被執行了。

![](https://2439647256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4NDwp0sFRvD07cdujE%2F-MPaJMB6d1rzoKjyICFQ%2F-MPaJvUNB0KCR8ennF6K%2Fexception01.png?alt=media\&token=e58513d8-7bf1-4e02-934f-c33979103095)

但如果能夠捕捉(catch) 例外的程式碼，就能妥善的處理；這樣的方式稱為例外處理（exception handing）。

## 例外處理基本格式

```
try
{
    想要檢查的敘述;
}
catch()
{
    當例外發生，處理的敘述;
}
finally
{
    一定被執行的敘述;
}
```

將上述語法的步驟繪成以下流程圖，進一步了解運作方式：

![](https://2439647256-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4NDwp0sFRvD07cdujE%2F-MPaJz29z6XBGCR8XBQu%2F-MPaKEtDV_u3UTHH3r7N%2Fexception-handing-01.png?alt=media\&token=419362f8-8aea-4359-97b1-ebb1606f6afa)

1. 若 try 區塊有例外發生，程式會中斷並拋出例外類別產生的物件。
2. 若拋出的物件是 catch 想要捕捉的例外，將會執行catch中的敘述。
3. 無論 try 有例外發生，或是catch 有無捕捉到例外，皆會執行 finally 中的敘述。
4. 最後就會執行 try catch finally 以外的程式敘述。

> 注意：格式中的大括號 {} ，即使敘述只有一行也不能省略！

下篇將會開始帶入如何例外處理（exception handing）的實作範例。<br>
