第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Java Extends RuntimeException 字段值是線程安全的嗎?

Java Extends RuntimeException 字段值是線程安全的嗎?

qq_笑_17 2021-08-04 17:30:16
幫我解決我的簡(jiǎn)單問(wèn)題。這是我的簡(jiǎn)單例外。public class MyException extends RuntimeException {private MyErrors error;public MyException() {}public MyException(String message) {    super(message);}public MyException(MyErrors error) {    super(error.getMessage());    this.error = error;}}    public class MyService {...    public String someMethod(String id){        Optional<Prizes> prize = Optional.ofNullable(prizesRepository.findById(id));        if(prize.isPresent()){            return prize.get().getPrize();        }        throw new MyException(ThanksGivenErrors.BadRequest);    }}這是 MyController 使用的 MyServicepublic class MyController{...@PostMapping("/prize")public ResponseEntity findPrize(@RequestParam String id) {    try {        return new ResponseEntity<>(MyService.someMethod(id), HttpStatus.OK);    } catch (MyException e) {        return new ResponseEntity<>(e.getError().getMessage(), HttpStatus.BAD_REQUEST);    }}}MyService 是一個(gè) Spring bean 和單例。我認(rèn)為如果在多線程環(huán)境中使用 MyService 并且發(fā)生許多 MyException,則 MyException 中 'error' 字段的值可能會(huì)發(fā)生變化?!癕yException(extends RuntimeException)”的字段值是“線程安全”嗎?我不認(rèn)為這會(huì)是安全的。謝謝你的教導(dǎo)。
查看完整描述

2 回答

?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

正如評(píng)論者所提到的,您可以通過(guò)使用final關(guān)鍵字使您的異常成為線程安全的,假設(shè)它MyErrors也是線程安全的。

但是,您應(yīng)該注意,您擔(dān)心的是

如果在多線程環(huán)境中使用 MyService 并且發(fā)生許多 MyException,則 MyException 中“錯(cuò)誤”字段的值可能會(huì)更改。

在這里無(wú)效。您的異常不需要是線程安全的,因?yàn)榧词箳伋霎惓?,它也只?huì)對(duì)拋出線程可用。由于MyException似乎是運(yùn)行時(shí)異常,因此您似乎沒(méi)有傳播異常,因此一旦拋出異常,您似乎不會(huì)在任何地方共享異常的狀態(tài)。

如果是這種情況,我建議您保持異常非線程安全。


查看完整回答
反對(duì) 回復(fù) 2021-08-04
?
富國(guó)滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

RuntimeException擴(kuò)展自Throwable,它不是線程安全的或不可變的。它具有更改狀態(tài)的方法,例如: addSuppressed


查看完整回答
反對(duì) 回復(fù) 2021-08-04
  • 2 回答
  • 0 關(guān)注
  • 344 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)