搜尋

搜尋結果

Spring boot web api 異常處理
科技新知
MacauYeah・2025-10-28

我們在編寫程式時,經常會遇到一些極端的情況,不會經過 function 的方式回傳結果。例如一個 function 原本是提供讀檔功能,但用戶傳入的並不是一個有效的檔案路徑,又或是誰路徑權限不足,無法讀取。這些不正常的結果,並不是原本 function 所協定的回傳值。那麼,我們會拋出異常 Exception ,中斷所有被呼叫中的 function ,讓上層用戶去考慮怎樣處理這個問題。 在 Web API 中,這些 Exception 就更常見。要求用戶傳入的參數,用戶就是有時候少了幾個。覆寫資料的時候,原本的資料已被刪除。但我們現在是經過 Web Api,不能像過去一直向上拋出異常就能通知用戶。我們需要的,是把異常轉成對應的 Http Status Code,讓用戶端可以快速識別異常的類型。 java 異常對應 Http Response Code 其實在 spring boot web 中,要做轉譯,是很簡單的。在定義 java Exception的時候,若有@ResponseStatus,spring boot web 就會自動回應對應的 http error code。 @ResponseStatusHttpStatus.FORBIDDEN public class CustomAuthenticationException extends RuntimeException public CustomAuthenticationException public CustomAuthenticationExceptionString message supermessage; 以後,任何一個地方拋出 CustomAuthenticationException (假設上層沒有人攔截)都會把該 Controller 的結果改為 http 403。Spring boot 也很聰明的,把異常中的 message 隱藏 ,免得有網安的問題。 若我們定義 Exception 時,沒有@ResponseStatus,Controller 就會變成 http 500,例如我在 controller 中拋個常見的 IOException,這次的結果就會變成 http 500。 @GetMappingquot;apiioErrorquot; public String forceIOException throws IOException throw new IOExceptionquot;force io errorquot;; 如果某些時候,我們想使用 java Exception 中的 message 欄位作為報錯信息,讓 http 客戶端,可以通過固定的 message 檔位找到問題訊息,我們可以在application.properties中,加入server.error.includemessage=always。有些特殊情況,在開發模式時 mvn springbootrun ,已經可以見到有 Exception message,但在投産後java jar又看不到。主要因為開發模式中, pom 有 optional springbootdevtools,會自動加入了server.error.includemessage=always,但 mvn package 後就沒有,因為 runtime 沒有 springbootdevtools 的覆蓋。 額外處理 異常處理除了想控制 http status code 外,有時還需要做一些額外處理,例如發出通知郵件等。若想做額外處理,需要另做一個 @RestControllerAdvice 的類,在接到指定的 exception 時,可以轉換不同的 http code ,而且還可以執行額外 java code ,改變 http ResponseBody 。 @RestControllerAdvice public class GlobalExceptionHandler @ExceptionHandlervalue = RuntimeException.class @ResponseStatusHttpStatus.INTERNAL_SERVER_ERROR public Map handleRuntimeExceptionException ex return Map.ofquot;retquot;, false, quot;anyfieldsquot;, ex.getMessage; 但要注意,一旦使用@RestControllerAdvice 後,就要考慮有沒有改變了某些預設的行為。例如上述的@ExceptionHandlervalue = RuntimeException.class,代表所有RuntimException.class的子類,都會歸由該 function 所處理。當然,你也可以多加幾個 function 來處理不同的子類。 Reference springbootwebapivalidate

澳門美高梅「食•八方」呈獻全新概念餐廳—北㕑及南苑
澳城餐飲
Benjamin・2017-02-17

澳門美高梅宣佈旗下餐廳北㕑和南苑隆重開幕,令其餐飲陣容錦上添花。美高梅投資高達七百萬美元,推出「食bull;八方」全新概念餐廳mdash;北㕑和南苑,為賓客在精心設計的別緻空間内,提供中國南北方地區的獨特風味菜式。這兩個嶄新的美饌概念,帶來多種由專業大廚精心炮製、以新鮮和時令食材製作的佳餚;餐廳環境充滿活力和藝術感,提升賓客的用餐體驗。 兩家餐廳擁有對比鮮明的裝潢和不同的菜單,卻同時以開放式廚房帶出食物的香味、口味和地道風味。為豐富賓客的感官盛宴,兩家餐廳內更擺放了著名澳門藝術家馬偉達(Victor Marreiros)及書法家莫華基的作品,供賓客細賞之餘,亦為餐廳增添色彩和獨特個性。美高梅中菜部行政總廚黃永昌先生表示:「爲了給蒞臨澳門美高梅的尊貴賓客提供更多選擇,全新的北㕑和南苑在菜式、味道、菜單,以至室內設計方面,都呈獻出截然不同的感覺。北㕑以不同的地區名菜為主打,南苑則專注傳統中國南方菜式,但兩家餐廳對品質、地道風味,以及食材新鮮度的追求均同樣嚴謹。我們熱切期待新的賓客到訪,更歡迎『食bull;八方』的捧場客再次光臨,感受兩款全新的餐飲體驗。」 「食bull;八方」旗下食府 mdash; 北㕑 北㕑結集了來自中國北方和中部地區的卓越菜式,包括來自北京、東北、湖南、山東、上海、四川、新疆及浙江等地的佳餚,供應冷盤、蒸包、粥麵、煎餅、餃子,以及多項特色美饌。除了大受歡迎的肉類菜式外,北㕑還可依照賓客的喜好烹調各種新鮮海鮮。 北㕑的各款菜式均由一班資歷深厚、來自中國各地的大廚們精心炮製,確保為賓客帶來最優質和正宗的味道。麵亭更有大廚即席示範拉麵和切麵技巧,保證令賓客眼界大開。室內設計方面,北㕑猶如當代的北京四合院,餐廳的窗戶能遠眺姊妹餐廳南苑。 餐廳的另一重點在於其一系列特別邀約創作的藝術品,映襯出中國北方的特色和味道,為食客增添多一重感官體驗。澳門藝術家馬偉達的畫作描繪北方人的不同時期和服裝,展示中國地區風俗習慣和生活方式的轉變。北㕑為賓客呈獻質素卓越、款式多樣、創意豐富和風味地道的佳餚。 菜單上的52道菜式凸顯出部份中國地區獨有的地道風味,重點推介包括: middot; 老城都麻醬白菜 middot; 北平韭菜鮮肉水餃 middot; 北館秘制油潑扯麵 middot; 雙流地道水煮:魚片、黃鱔或桂花魚 middot; 回鍋家常臊子海參 「食bull;八方」旗下食府 mdash; 南苑 南苑專門製作香港和廣東地方名菜,這家廣東茶餐廳概念餐廳24小時全天候爲賓客供應佳餚。餐廳内的特製燒味烤爐和半開放式鑊炒區,讓賓客能近距離欣賞大廚們即席炮製鑊氣十足的小菜;其他南方佳餚還包括軟腍可口的牛腩、點心、粥品及湯類。 偌大的餐廳空間感十足,輕鬆的環境令人聯想到於室外用餐的感覺,特別適合簡單快捷的餐飲體驗。南苑菜式選擇豐富、味美而地道,加上價格相宜,實在是個人用餐及小型聚餐的理想地點。 菜單提供82道菜式以供選擇,重點包括: middot; 食八方狀元海鮮粥 middot; 至尊燒鵝、玫瑰蜜汁叉燒及多款特製中式燒味 middot; 薑蔥雞絲海蜇 middot; XO醬花枝片 middot; 蔥油蟲草花黑木耳 營業時間: 北㕑 每日上午11時至凌晨1時 南苑 每日24小時營業 電話查詢及訂座: 北㕑 (853)8802 2388 南苑 (853)8802 2389

韓亞航空 A380 頭等艙搭乘報告
專題報導
OHChance 旅遊誌・2019-02-17

2018年農曆新年到美國探親順道玩玩美西,最後是從洛杉磯回。回程是利用 Avianca 的哩程計劃 Lifemiles 以90,000哩兌換韓亞航空(Asiana Airlines)的頭等艙經首爾仁川回香港(首爾飛香港是商務)。簡單報告一下。 Star Alliance Lounge @ LAX ▼ 星空聯盟於洛杉磯機場設立了一個中央的貴賓室 Star Alliance Lounge,而不是各家航空公司開自己。Star Alliance Lounge 有再獨立分開 Business Class Lounge 跟 First Class Lounge。 ▼ 頭等艙貴賓室不大(畢竟頭等艙乘客也不會太多),較遠近牆的14區域是 fine dining area,其他就是休息區。 Dining Area 所有餐點都是免費的,服務人員也很親切會告訴你點的餐大概要等多久(所有餐點即點即做)。 ▼ 如果想坐得寬廣一些,就可以到 Business Lounge 去(但一般人都不少)。 韓亞航空 A380 First Suite 硬件規格 座艙位置: 下層前艙 座位數: 12席 佈局: 121 椅距: 83吋 後傾角度: 至180度 (81吋長平躺床) 椅寬: 22吋 娛樂系統: 32吋個人螢幕BOSE QuietComfort 3 降噪全包覆式耳機 電力裝置: 1個 110V萬國電源插口1個 5V USB 接口 ▼ 韓亞航空的頭等艙是小包廂設計,位於下層機首位置,佈局為 121,共12個座位。 ▼ 小包廂的意思就是有門可以關起來,隱私度超高! ▼ 坐下後第一個感覺就是螢幕好大啊。。。32吋) ▼ 作為頭等艙,座位可以變成單人床是必須的。 躺在床上看電影最爽! 備品 ▼ 過夜包是用 quot;飛甩雞毛quot; Salvatore Ferragamo 的出品,女生大愛啊! ▼ 睡衣是有點運動服的式樣,好穿!拿回家繼續當家居服! 餐食 ▼ 頭等艙嚴格而言沒有特別的用餐時間,你喜歡什麼時候用餐都可以。 ▼ 坐在韓國的航空公司,不吃韓餐有點浪費,而且主理韓亞頭等艙的是 ldquo;宮廷飲食研究院rdquo;(궁중음식연구원 the Institute of Korean Royal Cuisine )!韓式拌飯(Bibimbap)跟牛骨湯必須來一個。 ▼ 看電影看到一半餓了?叫空姐煮個辛拉麵給你送戲 XD 韓亞航空的頭等艙在飛機上的硬件跟服務是近乎無可挑剔。加上有 Bibimbap (笑)以及更重要的:相對慷概的兌換位置,令韓亞絕對是兌換亞洲-北美頭等艙的一個上佳選擇。 完整搭乘報告,請參閱: httpsohnote.infoasianaa380firstlaxicn ===== 想搵平機票去玩,即上 OH!Chance!澳燦旅行資訊 httpsohchance.info 去日本旅行買咩 JR Pass好?即上 OH!Note!小燦的旅行筆記做功課 httpsohnote.info 唔知間航空公司好唔好坐?馬上 Subscribe OH Chance Youtube 睇睇佢:httpsyoutube.comcOHChanceTravel 睇埋 Facebook 專頁 httpsfb.comohchance 第一時間獲得最新旅遊資訊!

[議劇論映] 打爛沙盆問到篤 — 《鴉色刑事組》
娛樂殿堂
君尋・2021-07-21

《鴉色刑事組》(或譯《第一刑事部的烏鴉》) 觀後推薦度:★★★☆☆ 簡介: 被不少網民稱為法官版的《律政英雄》,竹野內豐飾演的法官不但對案件中的細節非常執著,經常「發動職權」,由法官本人親自到案件現場調查,訪問與案件相關的人,找出遺留的蛛絲馬跡,與《律政英雄》的主角如出一轍。甚至連角色出身的設定上,兩人同樣都不是名牌大學出身,又再加深《律政英雄》影子。不過《鴉色刑事組》中的另一位由黑木華飾演的法官,卻不認同男主角事事深究的做法,反而更著重處理案件的效率,快速處理手頭上負責的案件才是法官應盡的責任。首兩集的案件都各有意思,第一集的結尾突出了竹野內豐執著案件細節的意義,雖然結論未必被推翻,但讓被告接納真相,才可以真心悔改,而非只為判刑而判刑。第二集更有驚喜,真相的意外性、輕輕觸及「司法獨立」議題,都讓人更期待剩下集數還會涉及怎樣的題材。 觀後心得: 起初還對主線有點期待,但結果相對平淡。不論是最初就開始舖陳的主角過去當律師時解決不了的事件,又或是最後的失業危機,都只是雷聲大雨聲小。尤其是事件解決方法,往往收得很突然,亦沒有讓人大吃一驚的轉折。每集單元劇的部份,評價一般都是好壞參半。最初以為這是法官版《律政英雄》,但看完發現兩者差異很大。雖然故事進行的形式上是有點類似,《律政英雄》花更多時間調查和找出背後的真相。而《鴉色刑事組》之中,因為劇本弱化了警方和檢察的能力,因而需要由法院再次主導調查,可是主角們找到的往往不是關鍵證據,最後都是要回到法庭上,靠主角發動「聖光」,感化受害人,由他口中說出事件的真相。也因此過程中有大量在法庭上的對話,步調亦相對緩慢。而發動「聖光」的時候,也順便說教一下,相信不少人受不了日劇的這種戲碼。雖然是這樣,但過程中探討的某些議題也頗為有趣,部份事件的真相也有點意外感。另一方面主角的工作環境非常歡樂,男女主角的互動也很有趣。整體來說沒有預期般優秀,但仍有一看的價值。 簡評: 千萬不要當作律政類型劇集,本質仍是日本觀眾愛看的偵辦案件,並加上大量在法庭上對話的劇情,節奏有機會慢到讓人睡著。 關於議劇論映 本欄目將會分享日本及歐美的影集和電影。除最新上映及流行的作品外,亦會推薦值得回味的滄海遺珠。 更多本欄目相關的內容可按:httpsppt.ccf6n5yx