搜尋

搜尋結果

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

「沙漠化」會令類滅亡?
科技新知
合資格90後・2015-08-07

ldquo;巴氏芽孢桿菌rdquo; 使沙粒結合再塑造不同形態 地球上的沙漠 沙漠化 「撒哈拉綠色長城」計劃 你知道嗎?全球超過3分1面積被沙漠等乾燥地區所覆蓋,也就是「沙漠化」,每年因沙漠化而做成數以十萬人死亡,過百萬人飽受飢荒甚至人口遷徒。在近代軍備競賽的體系下,戰爭或許不是導致人類滅亡的主要成因,全球暖化、資源搶奪、過度開採、飢荒、沙漠化、過度捕魚、破壞食物鏈等等危機持續惡化,問題是,我們離這些危機有多遠呢? 其實沙漠化比我們想像中更加嚴峻,近年因沙漠化已影響近100個國家及世界上近70%耕地,有見及此,部分政府已着手解決相關問題。以非洲為例,若干年前,當地多國已聯手建立「撒哈拉綠色長城」計劃,嘗試以大量種植樹木阻止撒哈拉沙漠進一部擴大,及後科學家發現藉着ldquo;巴氏芽孢桿菌rdquo;,透過這種天然膠水使沙粒結合再塑造不同形態,甚至可延伸至綠化工程,此方法除阻止了問題進一步惡化外,亦有效利用空間,即使進行永續工程亦非天方夜譚。 在目前媒體文化中,除時事、趣聞、八卦、血腥暴力議題外機乎一律打入冷宮,故此我們難以從日常生活中接觸到相關資訊,更諷刺的是,我們不會因爆炸性新聞而存在,反而會因不曾接觸的問題而死亡。原理就像你不曾為植樹而歌頌,反而會因樹木枯萎而窒息。 相關連結 httpwww.ted.comtalksmagnus_larsson_turning_dunes_into_architecturetranscriptlanguage=zhtw#t35180

請關心獨居老
宗教玄學
熊神進・2023-08-02

昨天有一位海外讀者打電話給我求助,他想請一尊「沉香壽星公」送給她的爸爸做陪葬品,經過詳細瞭解之後,筆者才知道她的爸爸在泰國獨居, 年前在屋裡往生。她是泰國華僑, 結婚後跟隨丈夫移民到印尼生活, 早幾年因為疫情關係, 她沒有回國探望父親。 筆者聽了這噩耗,心裡不安,為亡者燒了「祖先功德香」,念《地藏經》一回,祈求菩薩引領, 他能早日回家。 人老了,按中國人傳統觀念, 當然希望子孫同堂,大家一起生活,但, 這是傳統觀念, 不是人人都有「福」, 這個「福」又如何理解,筆者認為老百姓說的「福」, 其實都是指老人身體好,有錢可以花, 以及子女在身邊。 老人有幾種狀態,一種是低收入且比較邊緣的,又獨居、沒有子女,有些行動不便,連三餐都成問題。 昨天中國香港一宗新聞,一名在獨居老人在沙田,水泉澳邨,林泉樓某單位被發現倒斃屋內客廳,屍首更化成白骨。 我們做子女的, 要主動關心長者,關心的形式有很多種, 不局限於ldquo;社工籲房署更主動跟進rdquo;, 我們可以考慮從風水角度跟進: 避開長者睡在東北,西南方的房, 因為它長期缺乏陽光照射,細菌容易滋生。 徵求長者同意,在客飯廳安裝CCTV,平安鐘。 在家裡供養一尊長壽南極星壽星公像。 獨居老人失去老伴長期一人居住是社會的警鐘,社會的資源有限, 我們要鼓勵睦鄰關係, 組織屋宇義工團隊,更需要大廈管理員協助登記獨居老人的水電每月資料用量, 我們所做的一切, 都是關心老人。 祝天下老人,老有所安。

澳旅大開放日有獎抽!免費酒店房等你拎!
生活在我城
Cheers!・2025-12-27

2026年澳旅大開放日嚟喇!有得玩、有得睇,仲有機會抽中澳旅大住宿教學樓標準客房一晚 !名額一共10份,其中2份可以透過線上抽獎獲得,其餘8份就要親身嚟開放日現場先有機會拎到㗎~無論你喺中學生、家長定喺各界朋友,都歡迎一齊嚟感受澳旅大嘅熱鬧同魅力! 小編已經準備好帶大家玩轉校園,約定你啦~ 想參加線上抽獎?立即Click入以下連結,依照指定步驟參與! httpss.ctm.netk7LwY 開放日當日仲有超多精彩活動,包括學位課程資訊站、主題講座、校園導賞、攤位遊戲、工作坊、音樂表演等等!如果嚟唔到現場都唔使擔心,澳門旅遊大學小紅書官方帳號同埋CTM Buddy Facebook專頁同步直播,帶你即時感受現場熱鬧氣氛,一定唔好錯過! 活動日期:2026年1月4日(星期日) 時間:下午2點 地點:澳旅大氹仔校區 活動流程精選 開幕儀式(14:00 14:15) 地點:展望樓大禮堂 學位課程及招生資訊站(14:15 18:00) 地點:耀東樓地面層 JG12、JG13室 創意旅遊與智慧科技學院 學士學位課程攤位(14:15 18:00) 旅遊企業管理、文化與遺產管理 地點:耀東樓三樓 J302室 市場營銷與品牌管理、管理與數據科學 地點:耀東樓三樓J303室 國際商業及創新傳播 地點:耀東樓三樓J307室 創新款待管理學院 學士學位課程攤位(14:15 18:00) 酒店管理、旅遊會展及節目管理 地點:耀東樓負四樓 廚藝管理 地點:耀東樓負二樓JB204廚藝示範廚房 研究生課程攤位(14:15 18:00) 地點:耀東樓二樓J202、J203室 主題講座(每場均有抽獎環節!) 14:30 ndash; 15:00 amp; 15:30 ndash; 16:00 創意旅遊與智慧科技學院講座 地點:耀東樓三樓J314、J315室 15:00 ndash; 15:30 amp; 16:00 ndash; 16:30 創新款待管理學院講座 地點:耀東樓三樓J314、J315室 15:00 ndash; 16:00 研究生(碩士及博士)課程講座 ldquo;研"途澳秘 地點:耀東樓二樓J203室 每場講座均設大抽獎環節,另外到現場完成指定任務、集齊印章,亦可換領紀念品及參加終極大抽獎! 體驗活動專區(14:1518:00) 學生大使帶你遊校園、攤位遊戲、工作坊及表演。 廚藝學會活動、廚藝工作坊 餐桌服務體驗 烘焙、甜品工作坊 精品手沖及意式拿鐵咖啡工作坊 潮州工夫茶藝工作坊 財務策劃工作坊 音樂學會學生表演 音樂工作坊、彩繪體驗、外語遊戲、紙紮工作坊 康體工作坊(體脂測試,柔軟度測試,室內射籃) 大獎內容 澳旅大住宿教學樓 標準客房住宿一晚 (得獎名單將於1月內在澳門旅遊大學社交平台上公佈) 無論你喺想深入了解學科,還是想體驗大學校園生活,澳旅大開放日都不容錯過!我地1月4號見~

澳門斷捨離學會:歡迎加入! 2023年10月-12月作坊
文化創意
陳康妮・2023-10-09

澳門斷捨離學會是一個致力於推廣斷捨離理念和實踐的非牟利組織,現在合共26000位澳門市民加入,成立於2019年,由一群熱愛生活和追求簡約的澳門市民組成。學會的宗旨是幫助人們清理身邊的物品,減少無謂的負擔,提升生活品質和幸福感。 為了讓更多人了解和體驗斷捨離的好處,澳門斷捨離學會將於2023年10月至12月期間,舉辦三場工作坊,分別探討斷捨離與個人成長、斷捨離與輔導技巧、斷捨離與家庭治療的關係。工作坊將由學會的創辦人兼主席陳康妮女士主講,她是一位資深澳門教育家和生活教練,也是《澳門教育創新》一書的作者。 工作坊的詳細資料如下: 10月25日(禮拜三)晚上730 題目:斷捨離與個人成長內容:介紹斷捨離的基本原則和方法,並分享如何通過清理物品來釋放自己的潛能,實現個人目標和夢想。 11月22日(禮拜三)晚上730 題目:斷捨離與輔導技巧內容:介紹如何運用斷捨離的思維和技巧來進行有效的自我輔導和他人輔導,並分享一些實際的案例和心得。 12月13日(禮拜三)晚上730 題目:斷捨離與家庭治療內容:介紹如何通過斷捨離來改善家庭關係和氛圍,並分享如何協助家庭成員一起參與斷捨離的活動和遊戲。 工作坊適合任何對斷捨離感興趣或想要嘗試的人士參加,無需任何基礎或經驗。工作坊費用為免費,報名方式為在學會的Facebook專頁群組留言或私訊留言。名額有限,先到先得。 澳門斷捨離學會誠摯邀請您加入我們的工作坊,一起體驗斷捨離帶來的轉變和喜悅!

docker swarm 回到最基礎群集組建
科技新知
MacauYeah・2025-11-21

雖然筆者都知道,全世界在講 k8s ,全世界都叫筆者放棄 docker swarm,但無獨有偶,docker swarm 還是有使用的價值。 你只有單個服務在運行,只想要做冗餘或分流。快速地用 docker swarm 做最小可行性産品,推出市場。 傳統的HA功能做到了,但你沒有中央匯整日誌的功能。而你也不想把事情攪得太複雜,使用docker swarm 可以讓你在任何一個管理節點上查看不同 container 的日誌。 你的客戶只提供VM,他可能有自己的k8s平台,但不讓你使用。自建一套docker swarm ,先入場,事後擴展再要求客戶提供k8s,對於客戶來講,先證明系統是有價值的,在金錢成本上或能力上,一定是件比較可以接受的事。 筆者之前介紹過一系列的 docker swarm 教學,但生成群集的部份一直沒有做介紹。因為實在太簡單,所以一直都沒有收納在教學內容當中。但現在考慮其完整性,以及為了讓大家感受一下它有多簡單,所以重新寫了組建群集的步驟。 組成群集 以前各家不同的軟件,想要起一個群集,要左攪右攪,又要重啟。而docker swarm真的很簡單,只要各機中有 docker ,再在各機中順序打指令就好。 node 1 使用docker swarm init docker swarm jointoken manager # node 1 gt; docker swarm init gt; docker swarm jointoken manager To add a manager to this swarm, run the following command docker swarm join token SWMTKN1xxxxxxxxxxxxxxxxxxxxxxx xxx.xxx.xxx.xxx2377 其餘的管理員節點就根據上述的提示,使用 docker swarm join token SWMTKN1xxxxxxxxxxxxxxxxxxxxxxx xxx.xxx.xxx.xxx2377 就好。只要總數的管理員節點有奇數個就可以了(包括當初的node 1)。即是1、3、5等都可以。這是因為在容錯的情況下,必需由管理節點作出多數決,才能容易地知道判斷是哪些節點出現問題。 如果不為容錯,只想增加可工作的機器,那麼我們只需要增加工作節點。我們可以在任何管理員節點生成docker swarm jointoken worker gt; docker swarm jointoken worker To add a worker to this swarm, run the following command docker swarm join token SWMTKN1yyyyyyyyyyyyyyyyyyyyyyy yyy.yyy.yyy.yyy2377 若想要檢查各個節點的工作狀態,在管理員節點上執行 docker node ls 看到了。 docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION xxxxxxxxxxxxxxxxxxxxxxxxx node1hostname Ready Active Leader 28.5.1 yyyyyyyyyyyyyyyyyyyyyyyyy node2hostname Ready Active Reachable 28.5.1 全部教學請見 httpsmacauyeah.github.ioAProgrammerPreparesVMDockerNotesSwarmModeCommandCN.html

樂 有很難嗎?
生活在我城
合資格90後・2017-10-26

最近看了一個哲學的清談節目,其中一集的主題是ldquo;你快樂嗎?rdquo;。試問這樣的一個話題,能不吸引人嗎?節目的主持人都大有來頭,有香港中文大學的通識課教授,亦有一些於國外修讀哲學的專家,更有我喜愛的一位作家 徐緣,整集你一言我一語,看得非常過癮。 節目裡分享了一句說話,個人非常喜歡,ldquo;你願做悲傷的蘇格拉底,還是一隻快樂的豬?rdquo;在這裡,容許我先幫大家補習一下吧,究竟蘇格拉底是誰呢?他是一位古希臘的哲學家,話時當時他在雅典被很多人稱為智者,亦有不少學生,但後來因為得罪不少貴族被賜死,雖然他有機會走,但最後選擇飲毒酒而死,就這樣結束了一生。好,回歸正題,剛才解釋完蘇生的一生,大家都明白為何是悲傷的蘇格拉底吧,而快樂的豬,故名思義,就是一生由出生到生命結束都開心渡過,無拘無束。聽完解釋後,你又會如何選擇呢? 說實話,一隻快樂的豬,我感覺根本就是一個剛出生的嬰孩啊這裡說的是還未有意識,大約未足5個月大的嬰孩哦,什麼都不用管,飯來將口,根本與一個億萬富豪的退休人士生活般寫意。但是,這時的嬰孩沒有「自我意識」,即使父母給予再多的東西,他亦不知什麼是快樂;然而,雖然話蘇格拉底在外人面前看來,的確係死得冤枉,但大家有意識到嗎?他大可以選擇一走了之的,但最後卻選擇了犧牲自己的生命,來突顯生命的高貴,換句說話來說,如果他本人早就將生死將生死置於度外,希望用自己的生命來拯救一座城市,那麼我就認為他並不是大家所說的ldquo;悲傷的蘇格拉底rdquo;了。 其實在我們擁有自我意識後,就一定會伴隨著無盡的痛苦,甚至是佛學所說的悲苦。無他,因為欲望驅使著我們,要做到無欲無求這種最高境界,相信除了ldquo;痴線佬rdquo;做到外,我大膽講句,就連李嘉誠都說自己未上岸我猜。我們一生裡會有一個名單不停的更新,裡頭記載著形形色色,以及各種想得到、實現的東西,然而,我們偶然會將很多一生不能所及的目標加入,導致我們盲目地做,一路走來背負的東西越來越多。沒有用的東西就捐了吧,這種事情大家都會做,可我們自己的身體、思想,又有幾個能真的說放底就即放?如果我們今天知道最終只能做到80分的人,你會甘心嗎?說實話,要是我知道了,我就盡力做到80分就好了,可能你們會說我太天真,但不正正是因為我們想太多所以才造成無盡的痛苦嗎? 圖片來源:網絡圖片

面對老闆,好嗎?
玄學星相
熊神進・2017-06-22

讀者 Christ 來信問,她是一名剛剛畢業的大學生,由於深信星座,星座建議她上班打扮美一些,就能獲取升職機會,於是,她天天化妝,穿短裙,工作沒有三個月老闆就把她就升調了,本來升職是一件樂事,可是,她要搬到老闆的辦公室,而且坐在老闆的對面,換句話說,她每天跟老闆ldquo;面對面rdquo;工作,她想知道這樣的風水好不好? 從辦公室風水學來說,老闆的座位一定在辦公室後面,因為這是一個王位,可以制人,對於一般員工而言,自己的座位並沒有太多的選擇權利,話雖如此,我們亦要營造出有利於自己的空間,以保證讓自己身心不受干擾,並能讓思維快速集中、頭腦清晰思考。 Christ 的坐位對面是老闆,在五行來說,老闆是官,員工是民,官是克民,老闆是克員工,這是可以理解,所以員工跟老闆的氣場相沖並不是一件樂事,第一,老闆時時刻刻盯住自己工作;第二,老闆是男的,長時間一起工作難免有眼神交流,十分尷尬;第三,自己的弱點無法隱藏,失去自信心。 風水學家認為每一個人都有自己磁場,當磁場受到干擾就會產生不安情緒,也可能鬧情緒,生氣, 衝突等,因此,員工的座位最忌沖老闆的座位。 為了舒緩這個衝突,風水學家建議在辦公桌上擺放ldquo;植物rdquo;ldquo;能量塔rdquo;ldquo;白水晶rdquo;採用隔離的方法是有一點效果。 如有任何問題,歡迎聯絡: 林小姐 13726267799晚8時後 熊神進:澳門 85366618785 Facebook httpswww.facebook.com熊神進風水法器店MasterMickeyHungFortuneWorkshop252635158482455 公共微信 macaumasterxiong 淘寶風水法器店:httpmacauhung.taobao.com

先進救災機械
科技新知
合資格90後・2015-11-09

機械人進入瓦礫中搜索 航拍實境 於現場展開拍攝工作 拍攝河川現狀 早一天進行賠償就能助居民提早半年時間恢復家園 用於救災的蜂鳥旋翼機 水底機械人以聲納功能掃瞄 水底機械人 2005 年 颶風卡崔娜 環顧四周,身處頹垣敗瓦中,眼望家園被毀,妻離子散,每個惶恐的瞳孔,仿如致身地獄般的感覺,相信身處澳門的我們不曾經歷過。多年來,科學家除了致力於製造準確預測天災的儀器外,亦創造出無數機械人大軍協助救援,鑑於以往技術未夠成熟,許多計劃都無疾而終,而近年航拍大行其道的時代,機械人救援看似漸露頭角。 自2005 年的颶風卡崔娜以後,救災機械人就被廣泛使用,甚至在紐約世貿恐襲中同樣被大量使用,這些機械人簡直就是結構工程師的好幫手,它可以從不同角度看到建築物的受損程度,又或是地質極不穩定的地區以極短時間拍攝完整且高解析度的圖片,當然,還有海底機械人,它的出現讓科學家們更準確掌握板塊結構及狀況。它的出現拯救了無數人的生命,亦為科家學進一步探索地球奠定了無可替代的位置。 事實上,科學家認為最大的問題不是把機械人做得更堅硬,亦不是增加更多感應器,而是在數據傳輸,如何迅速將數據傳遞到分析員手上。試想像,在往後的救災過災過程中,機械人自動收集數據並協助我們探索地下世界,找到更多受困的災民,更甚,可以於災難未發生前預先發出警報,通知當地居民迅速疏散,將傷害減到最低,機械人的出現將改變世界,同樣亦拯救了無數無辜生命。