WEFV2626EFCEYYYB15VEF

 

內容簡介

  獻給每一位香港人

  【2019年,香港學者與香港未來主人翁的真實對話紀錄】

  2019年的香港充滿傷痛,百萬市民在持續近半年的示威活動中歸納出「五大訴求」,但當中對未來的想像卻有濃淡之分,不宜化約。當下任何關心香港的持份者都急於為香港尋求出路。作為社會一員,公共知識人理應為本港付出更多。自2019年10月開始,超過百位來自不同政治光譜、崗位、年齡層的香港學者組成義務團隊,分階段訪問了在2047年尚未超過65歲的香港市民,以期了解年輕市民對三十年後生活的香港有何想像。這份學者訪談報告,反映了他們對當下困局的理解,亦包含對未來的祈願。

本書特色

  2019年,香港學者與香港未來主人翁的真實對話紀錄──

作者介紹

作者簡介

「Stakeholders in 2047:香港未來說明書」團隊


  本團隊由一群香港學者組成,沒有領袖與大台,希望以學術訓練的客觀與專業操守,呈現香港未來主人翁對未來的想法,並將訪談成果結集為專書,陸續分冊出版。編輯過程中,盡可能不更動文字與表述形式,呈現原貌,以供所有持份者思索香港未來,也作為我們送給香港人的一份禮物。

  *本書(第一冊)訪問學者如下,特此感謝(依姓名首字筆劃為序):

  Dr. Au Yeung Kai Yin Gigi、Dr. Beatrice Lok、Dr. Bobo Lau、Dr. Bonaventure Ho、Dr. Gary Lam、Lecturer Kathy Lee、Prof. Lee Kam Pui Eric、Dr. Leung Lai Kuen、Dr. Lily Chan、Dr. Mok Ka Pun Chris、Dr. Poon Lok Ming Louis、Dr. Teresa To、李少南教授、李孝聰博士、李楚翹博士、侍建宇講師、林超英先生、陳力深教授、陳志宏博士、陳智達博士、黃以恆博士、鄧景輝先生
 

目錄

「香港未來說明書」簡介

什麼是香港人?─從運動中拿回「香港人」身分
人能把我們怎麼樣呢?
未來,大家會把運動視為日常的一部分
香港從來都沒有嚐過民主的鮮甜
自由是香港最重要的核心價值
在風眼中保持希望─ 一個教師眼中的反修例運動
「前線」之後─訪問運動及警隊支援人員
中港合作的未來
最美滿的結局是因了解而和平分手
政府必須先保障本土居民的民生利益
唯有普世價值落實,才能改變環境
因疑惑而求知,因不甘而行動
重要的是肯發夢,有想像就有可能夢想成真
香港會失去本來的價值?
政府應該害怕人民,而不是人民要害怕政府
何以要抗爭?
香港 還能回到過去嗎?─迷失的「一國兩制」面對虛幻的「港獨」
政府第一步:真‧聆聽
運動是為了保持香港獨有的地位
票選一個真正屬於港人的政府
願時光回到2000年
永續真正的一國兩制

訪談學者群

 
 



「香港未來說明書」簡介


  2019年的香港充滿傷痛,任何關心香港的持份者都急於為香港尋求出路。以百萬計的市民在持續近半年的示威活動中歸納出「五大訴求」,但當中對未來的想像卻有濃淡之分,不宜化約。香港政府在今秋多次提出希望以真誠對話修補撕裂,惟亦未令本港恢復平靜。我們的城市陷入了歷史上罕見的難題,衝突與對立日益嚴峻,實非任何愛護香港的持份者所樂見。在長遠來說,無論秉持任何價值觀,或希望香港在未來將往何方邁進,掌握事實與坦誠地相互理解永遠是高度文明城市解決問題的基礎前設。

  作為香港社會的一員,學者(或更廣義的公共知識人)理應為本港付出更多。「Stakeholders in 2047:香港未來說明書」由一群香港學者組成,沒有領袖與「大台」,單純地希望以學術訓練的客觀與專業操守,呈現香港未來主人翁對本港未來的想法。在2019年十月開始,過百位來自不同政治光譜、崗位、年齡層的香港學者所組成的義務團隊將分階段訪問了在2047年尚未超過65歲的香港市民,以期了解年輕市民對三十年後他們生活的香港有何想像。在「無前設、能暢所欲言」的機制下,「Stakeholders in 2047:香港未來說明書」的義務學者會分別訪問一位與他們相互信任的年輕朋友,讓2047香港的持份者在分享中道出對我城過去、當下以至未來之所想,集思廣益,匯聚成具建設性的前瞻思考。

  過百位接受不同學科訓練的學者朋友以不同形式參與同一訪問計劃,在組織、方法學、書寫及發布形式等層面都有不同的想像。為了讓義工學者發揮自身的所長,也讓各種學科專業的特性得以發揮,「Stakeholders in 2047:香港未來說明書」團隊祇針對研究倫理、受訪者私隱及探討的大致範圍規範參與者的訪問方式。是以,讀者們請不要將接下來會讀到的訪問成果視之為一份嚴謹的學術研究,或在閱讀過程中推敲團隊在收集資料與編輯過程中希望引出何種結論與發現。我們每一位參與的義工學者都以平等的身份參與,編輯團隊在整理過程中,除明顯錯別字或出版格式以外,盡可能保留不更動文字與表述形式。即使在訪問報告中有未能確認的資料,我們亦不會更動考訂。

  「Stakeholders in 2047:香港未來說明書」希望為讀者帶來的是一份2019年的香港學者與香港未來主人翁真實的對話紀錄,義工學者根據與受訪的談論結果而書寫的訪問報告,反映了他們對當下困局的理解,亦包含了對未來的祈願。有關成果,在2019年聖誕節起逐步出版,供當下不同的持份者作思索香港未來之用,也作為我們送給香港人的一份聖誕禮物。
 
 

詳細資料

  • ISBN:9789578924826
  • 規格:平裝 / 232頁 / 17 x 23 x 1.16 cm / 普通級 / 單色印刷 / 初版
  • 出版地:台灣
  • 本書分類:> >

 

 

... 在項目中經常出現系統異常的情況,比如NullPointerException等等。如果默認未處理的情況下,springboot會響應默認的錯誤提示,這樣對用戶體驗不是友好,系統層面的錯誤,用戶不能感知到,即使為500的錯誤,可以給用戶提示一個類似伺服器開小差的友好提示等。這時候便可以使用全局異常處理器來優雅的處理全局異常 定義錯誤消息類 在全局異常類中會使用該錯誤消息進行初始化 注意該消息的toString方法要寫成Json格式的 具體的錯誤消息初始化的時候也可以使用%s一類的占位符,後期調用靜態方法,來填充多個參數 這裡使用了@Data註解省去了自己編寫構造函數,詳情可以查找lombook使用方法 @Data @AllArgsConstructor @Slf4j public class CodeMsg implements Serializable { private int code; private String msg; public static CodeMsg SUCCESS = new CodeMsg(200, "success"); public static CodeMsg SERVER_ERROR = new CodeMsg(500100, "伺服器錯誤"); public static CodeMsg INSERT_ERROR = new CodeMsg(500200, "插入錯誤"); public static CodeMsg UNKNOWN_ERROR = new CodeMsg(-999, "未知錯誤:%s"); //填充多個錯誤信息 public static CodeMsg BIND_ERROR = new CodeMsg(500300,"參數校驗異常:%s"); public static CodeMsg UNSELECT_FILE_ERROR = new CodeMsg(500400,"未選擇文件"); public static CodeMsg FILE_NOT_EXIST_ERROR = new CodeMsg(500500, "文件或文件夾不存在"); public static CodeMsg UPLOADING = new CodeMsg(500600, "正在上傳"); //補充未知錯誤的具體信息 public CodeMsg fillArgs(Object... args){ int code = this.code; String message = String.format(this.msg,args); return new CodeMsg(code,message); } //處理異常時返回json的toString @Override public String toString { return "CodeMsg{" + "code=" + code + ", msg='" + msg + ''' + '}'; } // public static void main(String args) { // log.info(new CodeMsg(0, "hello").toString); // } } 定義全局異常類 之後遇到什麼錯誤,可以用錯誤消息類初始化全局異常類,並拋出該異常,該異常之後會被全局異常處理器捕獲 //繼承RuntimeException,並定義serialVersionUID public class GlobalException extends RuntimeException { private static final long serialVersionUID = -3586828184536704147L; private CodeMsg codeMsg; public GlobalException(CodeMsg codeMsg) { super(codeMsg.toString); this.codeMsg = codeMsg; } public CodeMsg getCodeMsg { return codeMsg; } } 定義返回結果類 返回結果有兩種,一種是返回相應的錯誤碼,一種是返回正確的驗證碼+數據,因此我們編寫返回結果類 @Data @ApiModel(description = "返回結果") public class Result<T> implements Serializable { private int code; private T data; private String msg; private Result(T data) { this.code = 0; this.msg = "success"; this.data = data; } private Result { this.code = 0; this.msg = "success"; this.data = null; } private Result(CodeMsg codeMsg) { if (codeMsg == null) { return; } this.code = codeMsg.getCode; this.msg = codeMsg.getMsg; } public static <T> Result<T> success(T data) { return new Result<T>(data); } public static <T> Result<T> success { return new Result<T>; } public static <T> Result<T> error(CodeMsg codeMsg) { return new Result<T>(codeMsg); } } 定義全局異常處理器 使用@ControllerAdvice來指定全局異常處理 使用@RestController返回json數據 使用@ExceptionHandler來捕獲特定的異常種類 @ControllerAdvice @RestController @Slf4j public class GlobalExceptionHandler { //自定義異常類 @ExceptionHandler(value = GlobalException.class) public Result<String> globalExceptionHandler(HttpServletRequest request, GlobalException e) { log.error(e.getCodeMsg.getMsg); return Result.error(e.getCodeMsg); } //參數檢測不合格 @ExceptionHandler(value = MethodArgumentNotValidException.class) public Result<String> bindExceptionHandler(HttpServletRequest request, MethodArgumentNotValidException e) { log.error(e.getClass.toString); // log.error(e.toString); List<ObjectError> errors = e.getBindingResult.getAllErrors; StringBuilder errorMsg = new StringBuilder; //此處僅取第一個 // ObjectError objectError = errors.get(0); for (ObjectError error : errors) { errorMsg.append(error.getDefaultMessage).append(" "); } // String errorMsg = objectError.getDefaultMessage; //填充具體異常 return Result.error(CodeMsg.BIND_ERROR.fillArgs(errorMsg.toString)); } //其他異常類 @ExceptionHandler(value = Exception.class) public Result<String> defaultExceptionHandler(HttpServletRequest request, Exception e) { log.error(e.getClass.toString); log.error(e.toString); e.printStackTrace; return Result.error(CodeMsg.UNKNOWN_ERROR.fillArgs(e.getClass.toString)); } //可定義詳細的其他異常類 // @ExceptionHandler(AuthenticationException.class) //此處為shiro未登錄異常類 // @ResponseStatus(HttpStatus.UNAUTHORIZED) // public String unAuth(AuthenticationException e) { // log.error("用戶未登陸:", e); // return "/login.html"; // } } 效果至此,便完成了自定義的全局異常處理方法,訪問效果如下 //成功 { code = 0; msg = "success"; data = 456; } //失敗 { code = 500100; msg = "伺服器錯誤"; data = null; } 以上內容都是我自己的一些感想,分享出來歡迎大家指正,順便求一波關注

 

 

WEFV2626EFCEYYYB15VEF

 

 

 

文章來源取自於:

 

 

壹讀 https://read01.com/xmn5R0K.html

博客來 https://www.books.com.tw/exep/assp.php/888words/products/0010844702

如有侵權,請來信告知,我們會立刻下架。

DMCA:dmca(at)kubonews.com

聯絡我們:contact(at)kubonews.com


潭子耳下三公分修剪台中不顯老的髮型推薦髮廊太平洋SOGO附近短髮造型推薦推薦染髮店一中商圈推薦頭皮護理專業染髮燙髮髮廊
台中東區微卷髮型修改推薦髮廊 烏日美式風格的質感男仕理髮學生染髮推薦髮廊 台中內行人推薦的美髮沙龍大里耳下三公分修剪上班族染髮推薦髮廊 台中中區完美的染髮效果推薦染髮店 台中Dcard燙髮推薦神岡中長髮造型推薦髮廊 梧棲頭髮燙捲專業染髮燙髮髮廊 特殊漂色,台中客製染髮精選推薦沙鹿復古卷燙髮推薦髮廊專業染髮燙髮髮廊 台中西區新髮型設計推薦髮廊推薦染髮店 台中質感色系商業髮色專業髮廊

arrow
arrow
    全站熱搜

    這款商品很大推 發表在 痞客邦 留言(0) 人氣()