คำถามติดแท็ก exceptions

ข้อยกเว้นคือการเกิดขึ้นในกระบวนการแอปพลิเคชันที่ต้องการเบี่ยงเบนจากโฟลว์ปกติของโปรแกรม

2
ใครควรอ่านข้อยกเว้นข้อความถ้าทั้งหมด
เมื่อออกแบบข้อยกเว้นฉันควรเขียนข้อความที่ผู้ใช้หรือนักพัฒนาควรเข้าใจหรือไม่ ใครควรเป็นผู้อ่านข้อความข้อยกเว้น? ฉันพบว่าข้อความแสดงข้อยกเว้นไม่มีประโยชน์เลยและฉันมักจะมีปัญหาในการเขียน จากข้อตกลงประเภทของข้อยกเว้นควรแจ้งให้เราทราบแล้วว่าทำไมบางอย่างไม่ทำงานและคุณสมบัติที่กำหนดเองอาจเพิ่มข้อมูลเพิ่มเติมเช่นชื่อไฟล์ดัชนีคีย์ ฯลฯ ดังนั้นทำไมจึงต้องทำซ้ำในข้อความ ข้อความที่สร้างอัตโนมัติยังสามารถทำได้และสิ่งที่ต้องมีคือชื่อของข้อยกเว้นพร้อมรายการคุณสมบัติเพิ่มเติม นี่จะมีประโยชน์เหมือนกับข้อความที่เขียนด้วยลายมือ มันจะดีกว่าไหมถ้าจะไม่เขียนข้อความเลย แต่มีตัวสร้างข้อยกเว้นพิเศษที่ดูแลการสร้างข้อความที่มีความหมายซึ่งอาจเป็นภาษาต่าง ๆ แทนที่จะเขียนรหัสเป็นรหัส? ฉันถูกถามว่าคำถามเหล่านี้ตอบคำถามของฉันหรือไม่: วิธีการเขียนข้อความยกเว้นที่ดี เหตุใดข้อความยกเว้นจำนวนมากจึงไม่มีรายละเอียดที่เป็นประโยชน์ ฉันอ่านทั้งคู่แล้วและฉันก็ไม่พอใจกับคำตอบของพวกเขา พวกเขาพูดคุยเกี่ยวกับผู้ใช้ทั่วไปและมุ่งเน้นไปที่เนื้อหาของข้อความแทนที่จะเป็นผู้รับและปรากฎว่ามีอย่างน้อยสองคนนั่นคือผู้ใช้ปลายทางและนักพัฒนา ฉันไม่เคยรู้ว่าฉันควรพูดคุยกับใครเมื่อเขียนข้อความยกเว้น ฉันยังคิดว่าข้อความที่โด่งดังไม่ได้มีคุณค่าใด ๆ เลยเพราะเพียงแค่พูดซ้ำประเภทของข้อยกเว้นด้วยคำที่แตกต่างกันดังนั้นทำไมต้องเขียนพวกเขาด้วยซ้ำ? ฉันสามารถสร้างมันได้อย่างสมบูรณ์แบบโดยอัตโนมัติ ข้อความถึงฉันยกเว้นไม่มีความแตกต่างของผู้อ่าน สมบูรณ์ยกเว้นจะต้องให้อย่างน้อยสองรุ่นของข้อความ: หนึ่งสำหรับผู้ใช้ขั้นปลายและหนึ่งสำหรับนักพัฒนา เรียกมันว่าข้อความแค่ข้อความธรรมดาเกินไป ข้อความนักพัฒนาซอฟต์แวร์ควรเขียนเป็นภาษาอังกฤษ แต่อาจต้องแปลข้อความของผู้ใช้เป็นภาษาอื่น มันเป็นไปไม่ได้ที่จะบรรลุทั้งหมดนี้ด้วยข้อความเดียวดังนั้นข้อยกเว้นจะต้องให้ตัวระบุบางอย่างกับข้อความของผู้ใช้ปลายทางอย่างที่ฉันเพิ่งพูดไปว่าอาจมีให้บริการในภาษาต่าง ๆ เมื่อฉันอ่านคำถามที่เชื่อมโยงอื่น ๆ ทั้งหมดฉันได้รับความประทับใจว่าข้อความข้อยกเว้นมีจุดประสงค์เพื่อให้ผู้ใช้ปลายทางอ่านและไม่ใช่นักพัฒนา ... ข้อความเดียวก็เหมือนมีเค้กและกินมันเช่นกัน

4
โยนข้อยกเว้นเข้าไปในที่สุด
วิเคราะห์รหัส Static เช่นเสริมสร้าง "บ่น" เมื่อมีข้อยกเว้นอาจจะโยนภายในบล็อกบอกว่าfinally Using a throw statement inside a finally block breaks the logical progression through the try-catch-finallyปกติฉันเห็นด้วยกับเรื่องนี้ แต่เมื่อเร็ว ๆ นี้ฉันเจอโค้ดนี้: SomeFileWriter writer = null; try { //init the writer //write into the file } catch (...) { //exception handling } finally { if (writer!= null) writer.close(); } …

10
พารามิเตอร์ในการควบคุมว่าจะโยนข้อยกเว้นหรือส่งคืน null - แนวปฏิบัติที่ดี?
ฉันมักจะเจอวิธีการ / ฟังก์ชั่นที่มีพารามิเตอร์บูลีนเพิ่มเติมซึ่งควบคุมว่าข้อยกเว้นจะถูกโยนออกมาเมื่อความล้มเหลวหรือกลับมาเป็นโมฆะ มีการพูดคุยกันแล้วว่าตัวเลือกใดดีกว่ากันในกรณีนี้ดังนั้นอย่าไปสนใจที่นี่ ดูเช่นคืนค่าเวทย์มนตร์โยนข้อยกเว้นหรือคืนเท็จเมื่อล้มเหลว ให้เราสมมติว่ามีเหตุผลที่ดีว่าทำไมเราต้องการสนับสนุนทั้งสองวิธี โดยส่วนตัวแล้วฉันคิดว่าวิธีการดังกล่าวควรแยกออกเป็นสองส่วน: วิธีหนึ่งที่ทำให้เกิดข้อยกเว้นในความล้มเหลวอีกวิธีหนึ่งที่ส่งกลับค่า null เมื่อล้มเหลว ดังนั้นจะดีกว่ากัน? ตอบ: วิธีการหนึ่งที่มี$exception_on_failureพารามิเตอร์ /** * @param int $id * @param bool $exception_on_failure * * @return Item|null * The item, or null if not found and $exception_on_failure is false. * @throws NoSuchItemException * Thrown if item not found, and $exception_on_failure is …
24 exceptions 

1
เหตุใด Java จึงออกมาพร้อมกับความสำเร็จหลังจากข้อยกเว้นที่ไม่ได้ตรวจสอบ
เมื่อใดก็ตามที่โปรแกรม Perl, Python, C ++ หรือ Tcl หยุดทำงานโดยมีข้อยกเว้นที่ไม่สามารถจัดการได้ runtimes ภาษาเหล่านั้นจะลงทะเบียนรหัสทางออกที่ไม่เป็นศูนย์สำหรับกระบวนการ แม้แต่โปรแกรมที่ใช้ Eclipse ก็จะคืนค่า 1 หากมันล้มเหลวระหว่างการเริ่มต้น อย่างไรก็ตามโปรแกรมที่ดำเนินการตามมาตรฐานจะjava.exeกลับเป็นศูนย์อย่างมีความสุขไม่ว่าโปรแกรมจะจบลงอย่างกระทันหันเว้นแต่ว่าโปรแกรมนั้นเรียกใช้System.exit()ด้วยค่าการออก แม้กระทั่งAssertionFailedErrorหรือUnsatisfiedLinkErrorถูกรายงานกลับไปยังโปรแกรมการโทรให้ออกมาเป็นผลสำเร็จ แน่นอนว่าไม่ใช่ทุกระบบที่มีรหัสส่งคืนโปรแกรม แต่ Unix และ Windows มีความสำคัญพอที่จะรับประกันjava.lang.Process.exitValue()กระบวนการลูก พวกเขาไม่รับประกันการเคารพแบบแผนสำหรับกระบวนการหลักหรือไม่ นี่เป็นข้อบกพร่องในการออกแบบภาษาหรือในการนำไปใช้หรือไม่? มีข้อโต้แย้งว่าเป็นความคิดที่ดีหรือไม่?
24 java  exceptions 

3
เหตุใดตัวเลือก / อาจถือว่าเป็นความคิดที่ดีและข้อยกเว้นที่ตรวจสอบแล้วไม่ได้
ภาษาการเขียนโปรแกรมบางอย่างเช่น Scala มีแนวคิดของOptionประเภท (เรียกอีกอย่างว่าMaybe) ซึ่งสามารถมีค่าหรือไม่ จากสิ่งที่ฉันได้อ่านเกี่ยวกับพวกเขาพวกเขาได้รับการพิจารณาอย่างกว้างขวางว่าเป็นวิธีที่ดีกว่าในการจัดการกับปัญหานี้มากกว่าnullเพราะพวกเขาบังคับให้โปรแกรมเมอร์พิจารณากรณีที่อาจไม่มีค่าแทนที่จะระเบิดในระหว่างรันไทม์ การตรวจสอบข้อยกเว้นใน Java ในทางกลับกันดูเหมือนจะถือว่าเป็นความคิดที่ไม่ดีและ Java ดูเหมือนจะเป็นภาษาที่ใช้กันอย่างแพร่หลายเท่านั้นที่ใช้พวกเขา แต่แนวคิดที่อยู่เบื้องหลังพวกเขาดูเหมือนจะค่อนข้างคล้ายกับOptionประเภทเพื่อบังคับให้โปรแกรมเมอร์จัดการกับข้อเท็จจริงที่ว่าอาจมีข้อยกเว้นเกิดขึ้น มีปัญหาเพิ่มเติมเกี่ยวกับข้อยกเว้นที่ตรวจสอบแล้วซึ่งOptionประเภทไม่มีหรือไม่ หรือแนวคิดเหล่านี้ไม่เหมือนกันอย่างที่ฉันคิดและมีเหตุผลที่ดีในการบังคับให้จัดการอย่างชัดเจนสำหรับตัวเลือกไม่ใช่สำหรับข้อยกเว้น?
23 exceptions 

5
ฟังก์ชั่นกลับจริง / เท็จเทียบกับเป็นโมฆะเมื่อประสบความสำเร็จและโยนข้อยกเว้นเมื่อล้มเหลว
ฉันกำลังสร้าง API ซึ่งเป็นฟังก์ชันที่อัปโหลดไฟล์ ฟังก์ชั่นนี้จะไม่ส่งคืน / เป็นโมฆะหากไฟล์ถูกอัปโหลดอย่างถูกต้องและส่งข้อยกเว้นเมื่อเกิดปัญหา ทำไมมีข้อยกเว้นและไม่ใช่แค่ของเท็จ? เพราะภายในข้อยกเว้นฉันสามารถระบุสาเหตุของความล้มเหลว (ไม่มีการเชื่อมต่อชื่อไฟล์หายไปรหัสผ่านผิดรายละเอียดไฟล์หายไป ฯลฯ ) ฉันต้องการสร้างข้อยกเว้นที่กำหนดเอง (ด้วย enum บางอย่างเพื่อช่วยผู้ใช้ API ในการจัดการข้อผิดพลาดทั้งหมด) นี่เป็นวิธีปฏิบัติที่ดีหรือเป็นการส่งคืนวัตถุที่ดีกว่า (ภายในบูลีนข้อความแสดงข้อผิดพลาดเพิ่มเติมและ enum สำหรับข้อผิดพลาด) หรือไม่?

2
ใครออกแบบข้อยกเว้น
ข้อยกเว้นและการจัดการข้อยกเว้นมาจากที่ใด ฉันชอบวิธีที่. NET ใช้งานฉันชอบวิธีที่ C ++ รองรับ (แต่ห้องสมุดน่าเสียดายที่ใช้รหัสส่งคืนหรือเขียนเป็น C แทน) ฉันรู้ว่ามันค่อนข้างมาตรฐานในทุกภาษาใหม่ แต่ใครเป็นคนออกแบบมันมาก่อนหรือมาจากที่ไหน C ++ เป็นภาษาแรกที่ใช้หรือไม่ ฉันไม่รู้จักคนอื่นที่มีอายุมากกว่า

3
วิธีการหลีกเลี่ยงการโยนข้อยกเว้นที่น่ารำคาญ?
การอ่านบทความของ Eric Lippert เกี่ยวกับข้อยกเว้นเป็นการเปิดตาอย่างแน่นอนเกี่ยวกับวิธีที่ฉันควรเข้าหาข้อยกเว้นทั้งในฐานะผู้ผลิตและผู้บริโภค อย่างไรก็ตามฉันยังคงพยายามกำหนดแนวทางเกี่ยวกับวิธีหลีกเลี่ยงการโยนข้อยกเว้นที่น่ารำคาญ โดยเฉพาะ: สมมติว่าคุณมีวิธีการบันทึกที่สามารถล้มเหลวเพราะก) ใครบางคนอื่น ๆ มีการปรับเปลี่ยนการบันทึกก่อนที่คุณหรือข) ค่าที่คุณกำลังพยายามที่จะสร้างที่มีอยู่แล้ว เงื่อนไขเหล่านี้คาดว่าจะเกิดขึ้นและไม่ได้ยอดเยี่ยมดังนั้นแทนที่จะทิ้งข้อยกเว้นที่คุณตัดสินใจที่จะสร้าง TrySave ของเมธอดของคุณซึ่งจะส่งคืนบูลีนที่ระบุว่าการบันทึกสำเร็จหรือไม่ แต่ถ้ามันล้มเหลวผู้บริโภคจะรู้ได้อย่างไรว่าปัญหาคืออะไร หรือมันจะดีที่สุดที่จะกลับ enum ระบุผลชนิดของ Ok / RecordAlreadyModified / ValueAlreadyExists? ด้วยจำนวนเต็ม TryParse ปัญหานี้ไม่มีอยู่เนื่องจากมีเพียงเหตุผลเดียวที่วิธีการล้มเหลว ตัวอย่างก่อนหน้านี้เป็นสถานการณ์ที่น่ารำคาญจริง ๆ หรือไม่? หรือจะโยนข้อยกเว้นในกรณีนี้เป็นวิธีที่ต้องการหรือไม่ ฉันรู้ว่ามันเป็นวิธีการที่ทำในห้องสมุดและกรอบงานส่วนใหญ่รวมถึง Entity framework คุณจะตัดสินใจเมื่อสร้างรุ่นลองของวิธีการของคุณเทียบกับวิธีการทดสอบก่อนว่าวิธีการทำงานหรือไม่ ฉันกำลังปฏิบัติตามแนวทางเหล่านี้: หากมีโอกาสเกิดสภาวะการแข่งขันให้สร้างรุ่นทดลอง สิ่งนี้จะป้องกันความต้องการของผู้บริโภคที่จะได้รับการยกเว้นจากภายนอก ตัวอย่างเช่นในวิธีการบันทึกอธิบายไว้ก่อนหน้านี้ หากวิธีการทดสอบเงื่อนไขค่อนข้างจะทำทุกอย่างที่วิธีการเดิมทำแล้วให้ลองสร้างเวอร์ชัน ตัวอย่างเช่นจำนวนเต็ม.TryParse () ในกรณีอื่น ๆ ให้สร้างวิธีการทดสอบเงื่อนไข
21 exceptions 

13
เหตุใดการอ้างอิงที่เป็นโมฆะจึงถูกรังเกียจขณะที่ทำการยกเว้นข้อผิดพลาดถือว่าโอเค?
ฉันไม่เข้าใจการทุบตีอ้างอิง null อย่างสม่ำเสมอโดยบางคนใช้ภาษาโปรแกรม มีอะไรเลวร้ายเกี่ยวกับพวกเขา หากฉันขอสิทธิ์เข้าถึงเพื่ออ่านไฟล์ที่ไม่มีอยู่ฉันก็ยินดีอย่างยิ่งที่จะได้รับการยกเว้นหรือการอ้างอิงที่เป็นโมฆะและยังมีข้อยกเว้นที่ถือว่าดี แต่การอ้างอิงที่ไม่ดีจะถือว่าไม่ดี อะไรคือเหตุผลเบื้องหลังสิ่งนี้

9
วิธีสอนการจัดการข้อยกเว้นสำหรับโปรแกรมเมอร์ใหม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว คุณจะสอนการจัดการข้อยกเว้นให้โปรแกรมเมอร์อย่างไร มีการสอนสิ่งอื่น ๆ ทั้งหมดได้อย่างง่ายดาย - โครงสร้างข้อมูล, ASP.NET, WinForms, WPF, WCF - คุณตั้งชื่อมันทุกอย่างสามารถสอนได้อย่างง่ายดาย ด้วยการจัดการข้อยกเว้นการสอนให้พวกเขาลองจับในที่สุดก็เป็นเพียงลักษณะทางวากยสัมพันธ์ของการจัดการข้อยกเว้น สิ่งที่ควรสอนคือ - คุณใส่ส่วนใดของรหัสไว้ในบล็อคลอง คุณทำอะไรในบล็อกcatch ให้ฉันอธิบายด้วยตัวอย่าง คุณกำลังทำงานในโครงการ Windows Forms (ยูทิลิตี้ขนาดเล็ก) และคุณได้ออกแบบดังต่อไปนี้ด้วย 3 โครงการที่แตกต่างกัน UILayer BusinessLayer ชั้นข้อมูล หากมีข้อยกเว้น (ให้เราพูดว่าการโหลด XDocument มีข้อผิดพลาดเกิดขึ้น) จะถูกยกขึ้นที่ DataLayer (UILayer เรียกว่า BusinessLayer ซึ่งในทางกลับกันเรียก DataLayer) คุณเพิ่งทำสิ่งต่อไปนี้ //In DataLayer try …

6
ลองใช้ / จับบล็อกมีประสิทธิภาพหรือไม่
ควรใช้บล็อก catch สำหรับการเขียนลอจิกนั่นคือ handle flow control etc? หรือเพียงแค่โยนข้อยกเว้น? มันส่งผลต่อประสิทธิภาพหรือความสามารถในการบำรุงรักษาโค้ดหรือไม่? อะไรคือผลข้างเคียง (ถ้ามี) ของการเขียนลอจิกใน catch block? แก้ไข: ฉันเคยเห็นคลาส Java SDK ซึ่งพวกเขาได้เขียนตรรกะภายใน catch block ตัวอย่างเช่น (ตัวอย่างข้อมูลมาจากjava.lang.Integerชั้นเรียน): try { result = Integer.valueOf(nm.substring(index), radix); result = negative ? new Integer(-result.intValue()) : result; } catch (NumberFormatException e) { String constant = negative ? new String("-" + …

4
ฉันควรใช้ข้อยกเว้นเมื่อใดและอย่างไร
การตั้งค่า ฉันมักจะมีปัญหาในการกำหนดเวลาและวิธีใช้ข้อยกเว้น ลองพิจารณาตัวอย่างง่ายๆ: สมมติว่าฉันกำลังขูดหน้าเว็บให้พูดว่า " http://www.abevigoda.com/ " เพื่อพิจารณาว่า Abe Vigoda ยังมีชีวิตอยู่หรือไม่ ในการทำสิ่งนี้สิ่งที่เราต้องทำคือดาวน์โหลดหน้าและค้นหาเวลาที่วลี "Abe Vigoda" ปรากฏขึ้น เรากลับมาปรากฏตัวครั้งแรกเนื่องจากมีสถานะของ Abe ตามแนวคิดแล้วจะมีลักษณะดังนี้: def get_abe_status(url): # download the page page = download_page(url) # get all mentions of Abe Vigoda hits = page.find_all_mentions("Abe Vigoda") # parse the first hit for his status status = parse_abe_status(hits[0]) # …

2
ข้อยกเว้น 'จำนวนดี' ที่จะนำไปใช้กับห้องสมุดของฉันคืออะไร
ฉันสงสัยอยู่เสมอว่ามีกี่คลาสข้อยกเว้นที่แตกต่างกันที่ฉันควรนำไปใช้กับซอฟต์แวร์ของฉัน การพัฒนาเฉพาะของฉันมักจะเกี่ยวข้องกับ C ++ / C # / Java แต่ฉันเชื่อว่านี่เป็นคำถามสำหรับทุกภาษา ฉันต้องการที่จะเข้าใจว่าอะไรคือข้อยกเว้นที่แตกต่างกันจำนวนมากและชุมชนนักพัฒนาคาดหวังอะไรกับห้องสมุดที่ดี การแลกเปลี่ยนที่ฉันเห็นรวมถึง: คลาสยกเว้นเพิ่มเติมสามารถอนุญาตให้มีการจัดการข้อผิดพลาดในระดับดีมากสำหรับผู้ใช้ API (มีแนวโน้มที่จะกำหนดค่าผู้ใช้หรือข้อผิดพลาดข้อมูลหรือไม่พบไฟล์) คลาสข้อยกเว้นเพิ่มเติมอนุญาตให้ข้อมูลเฉพาะข้อผิดพลาดถูกฝังอยู่ในข้อยกเว้นไม่ใช่เพียงแค่ข้อความสตริงหรือรหัสข้อผิดพลาด คลาสยกเว้นเพิ่มเติมอาจหมายถึงการบำรุงรักษาโค้ดเพิ่มเติม คลาสที่มีข้อยกเว้นเพิ่มเติมอาจหมายความว่า API นั้นเข้าถึงผู้ใช้ได้น้อยกว่า สถานการณ์ที่ฉันต้องการเข้าใจการใช้งานข้อยกเว้นรวมถึง: ในช่วง 'การกำหนดค่า' ซึ่งอาจรวมถึงการโหลดไฟล์หรือการตั้งค่าพารามิเตอร์ ระหว่างเฟส 'การดำเนินการ' ที่ไลบรารีอาจกำลังทำงานและทำงานบางอย่างอาจอยู่ในเธรดอื่น รูปแบบอื่น ๆ ของการรายงานข้อผิดพลาดโดยไม่ใช้ข้อยกเว้นหรือข้อยกเว้นน้อยกว่า (เป็นการเปรียบเทียบ) อาจรวมถึง: ข้อยกเว้นน้อยกว่า แต่ฝังรหัสข้อผิดพลาดที่สามารถใช้เป็นการค้นหา การส่งคืนรหัสข้อผิดพลาดและการตั้งค่าสถานะโดยตรงจากฟังก์ชั่น (บางครั้งไม่สามารถทำได้จากกระทู้) ใช้งานเหตุการณ์หรือระบบติดต่อกลับเมื่อเกิดข้อผิดพลาด (หลีกเลี่ยงการคลายสแต็ก) ในฐานะนักพัฒนาคุณต้องการเห็นอะไร หากมีข้อยกเว้นหลายประการคุณสนใจที่จะจัดการข้อผิดพลาดแยกต่างหากหรือไม่? คุณมีการตั้งค่าสำหรับประเภทการจัดการข้อผิดพลาดขึ้นอยู่กับขั้นตอนการทำงานหรือไม่?

5
คุณสร้างการโต้แย้งหรือการโต้แย้งจากวิธีส่วนตัวหรือไม่?
ฉันเพิ่งตรวจสอบโค้ดที่ฉันเขียนไปสักพักแล้วและจะเห็นว่าฉันมีวิธีการส่วนตัวสองสามอย่างที่ทำให้เกิดการโต้แย้งอาร์กิวเมนต์และ / หรือการยกเว้นอาร์กิวเมนต์หากมีปัญหากับพารามิเตอร์เมธอด ฉันคิดว่าเหตุผลของฉันคือช่วยพิสูจน์แอปพลิเคชั่นในอนาคตหากมีคนพยายาม "ใช้ผิด" วิธีการในอนาคต อย่างไรก็ตามเนื่องจากเป็นวิธีการส่วนตัวและผู้ที่มีแนวโน้มว่าจะเรียกวิธีนี้สามารถเห็นความคิดเห็นและรหัสที่เกี่ยวข้องได้จึงไม่จำเป็นต้องทิ้งสิ่งนี้ แน่นอนมันไม่เจ็บที่จะมีพวกเขาแม้ว่ามันจะเพิ่มความยุ่งเหยิง ฉันรู้สึกว่าข้อยกเว้นเหล่านี้โดยทั่วไปมีประโยชน์มากกว่าในบางสิ่งบางอย่างเช่น API ที่จะเปิดเผยต่อสาธารณะ
20 exceptions 

3
ฉันจะให้ข้อมูลเพิ่มเติมเกี่ยวกับข้อยกเว้นได้อย่างไร
ทุกครั้งที่ฉันต้องการให้ข้อมูลเพิ่มเติมเกี่ยวกับข้อยกเว้นที่ฉันสงสัยว่าวิธีใดเป็นวิธีที่ถูกต้องในการทำสิ่งนี้ เพื่อประโยชน์ของคำถามนี้ฉันได้เขียนตัวอย่าง สมมติว่ามีคลาสที่เราต้องการอัพเดตAbbreviationคุณสมบัติ จากมุมมองของโซลิดมันอาจจะไม่สมบูรณ์แบบ แต่แม้ว่าเราจะผ่านวิธีปฏิบัติงานผ่าน DI ด้วยบริการบางอย่างสถานการณ์เดียวกันก็จะเกิดขึ้น - มีข้อยกเว้นเกิดขึ้นและไม่มีบริบทใด ๆ เกิดขึ้น กลับไปที่ตัวอย่าง ... class Person { public int Id { get; set; } public string Name { get; set; } public string Abbreviation { get; set; } } จากนั้นมีอินสแตนซ์ของคลาสและลูปที่เรียกเมธอดของผู้ปฏิบัติงาน StringTooShortExceptionมันสามารถโยน var persons = { new Person { Id = 1, …
20 c#  exceptions 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.