---
# System prepended metadata

title: 觀念/技巧/踩雷分享
tags: [Back-End]

---

# 觀念/技巧/踩雷分享

#### 關於 graphql api 回傳錯誤訊息 (bob 2021-01-05)
之前有看到一個作法覺得可能有用分享給大家。
就是回傳的 type 可以用 union type 來包含一些事先定義好的 error。
例如 createOrder 這個 mutation 可以回傳 CreateOrderResponse = Order | XXXError | YYYError | ZZZError。
如果太多種可能的 error 或是 error 比較會變動或是想要偷懶 + 保持程式碼看起來算單純的話也可以視情況使用較通用的 Error type，裡面包含要顯示的錯誤 id 或訊息。

我的想法是「錯誤」有的是用戶正常操作也很容易出現的，有的是 api server 正常運作的情況下不太會發生的「例外」，也有很多是比較難分辨屬於前者還是後者的，如果很明顯是前者的情況下，想要把可能的錯誤顯式包含在 api 裡面的話就可以考慮用這個方式傳 error~

###### tags: `Back-End`