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

ข้อยกเว้นเป็นเงื่อนไขผิดปกติที่ต้องมีการเบี่ยงเบนจากการไหลปกติของโปรแกรม โดยปกติข้อยกเว้นไม่ควรส่งผลให้เกิดความล้มเหลวทั้งหมด แต่จะเข้าร่วมโดยตัวจัดการข้อยกเว้น การจัดการข้อยกเว้นเป็นโครงสร้างที่มีอยู่แล้วในหลายภาษาโปรแกรม โดยปกติแล้วข้อยกเว้นจะถูกจัดการโดยการคลายสแต็กดังนั้นจึงย้อนกลับไปยังสถานะที่กำหนดนอกขอบเขตของข้อยกเว้นจากนั้นจึงเรียกใช้ตัวจัดการบล็อกหรือรูทีน

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

8
วิธีกำหนดคลาสยกเว้นที่กำหนดเองใน Java วิธีที่ง่ายที่สุด?
ฉันกำลังพยายามกำหนดคลาสข้อยกเว้นของตัวเองด้วยวิธีที่ง่ายที่สุดและนี่คือสิ่งที่ฉันได้รับ: public class MyException extends Exception {} public class Foo { public bar() throws MyException { throw new MyException("try again please"); } } นี่คือสิ่งที่คอมไพเลอร์ Java พูดว่า: cannot find symbol: constructor MyException(java.lang.String) ฉันรู้สึกว่าคอนสตรัคนี้ต้องได้รับการสืบทอดมาจากjava.lang.Exceptionมันใช่ไหม?

3
ทำไมส่งคืน NotImplemented แทนการเพิ่ม NotImplementedError
NotImplementedงูหลามมีเดี่ยวที่เรียกว่า ทำไมบางคนต้องการกลับมาNotImplementedแทนที่จะยกNotImplementedErrorข้อยกเว้น? มันจะไม่ทำให้การค้นหาข้อบกพร่องยากขึ้นเช่นรหัสที่ใช้วิธีการที่ไม่ถูกต้องหรือไม่
282 python  exception 

8
การจัดการข้อยกเว้น ASP.NET Core Web API
ฉันใช้ ASP.NET Core สำหรับโครงการ REST API ใหม่หลังจากใช้ ASP.NET Web API ปกติเป็นเวลาหลายปี ฉันไม่เห็นวิธีที่ดีในการจัดการข้อยกเว้นใน ASP.NET Core Web API ฉันพยายามใช้ตัวจัดการข้อยกเว้น / คุณสมบัติ: public class ErrorHandlingFilter : ExceptionFilterAttribute { public override void OnException(ExceptionContext context) { HandleExceptionAsync(context); context.ExceptionHandled = true; } private static void HandleExceptionAsync(ExceptionContext context) { var exception = context.Exception; if (exception is MyNotFoundException) …

2
slf4j: วิธีบันทึกข้อความที่จัดรูปแบบ, อาร์เรย์วัตถุ, ข้อยกเว้น
วิธีการที่ถูกต้องในการบันทึกข้อความที่มีประชากรและการติดตามสแต็กของข้อยกเว้นคืออะไร? logger.error( "\ncontext info one two three: {} {} {}\n", new Object[] {"1", "2", "3"}, new Exception("something went wrong")); ฉันต้องการที่จะผลิตผลลัพธ์ที่คล้ายกับนี้: context info one two three: 1 2 3 java.lang.Exception: something went wrong stacktrace 0 stacktrace 1 stacktrace ... slf4j เวอร์ชั่น 1.6.1
275 java  exception  logging  slf4j 

16
C ++ รองรับการบล็อก 'ที่สุด' หรือไม่? (และนี่คือ 'RAII' ที่ฉันคอยฟัง?)
C ++ รองรับการบล็อก ' ที่สุด ' หรือไม่? อะไรคือ สำนวน RAII ? อะไรคือความแตกต่างระหว่างคำสั่ง RAII ของ C ++ กับการใช้คำสั่ง 'C' ?
272 c++  exception  raii  finally  c++-faq 

11
จะเกิดอะไรขึ้นหากในที่สุดบล็อกมีข้อผิดพลาดเกิดขึ้น
หากบล็อกสุดท้ายพ่นยกเว้นสิ่งที่ว่าที่เกิดขึ้น? โดยเฉพาะจะเกิดอะไรขึ้นถ้าข้อยกเว้นถูกโยนลงครึ่งหนึ่งผ่านบล็อกสุดท้าย ส่วนที่เหลือของคำสั่ง (หลังจาก) ในบล็อกนี้ถูกเรียก? ฉันรู้ว่าข้อยกเว้นจะแพร่กระจายขึ้นไป

10
เหตุใดรายการจึงไม่มีวิธี "รับ" ที่ปลอดภัยเช่นพจนานุกรม
เหตุใดรายการจึงไม่มีวิธี "รับ" ที่ปลอดภัยเช่นพจนานุกรม >>> d = {'a':'b'} >>> d['a'] 'b' >>> d['c'] KeyError: 'c' >>> d.get('c', 'fail') 'fail' >>> l = [1] >>> l[10] IndexError: list index out of range

16
โยนข้อยกเว้นออกมาจากผู้ทำลาย
คนส่วนใหญ่บอกว่าจะไม่ส่งข้อยกเว้นใด ๆ จากผู้ทำลายล้างซึ่งส่งผลให้เกิดพฤติกรรมที่ไม่ได้กำหนด Stroustrup ทำให้จุดที่"เวกเตอร์ destructor อย่างชัดเจนเรียก destructor สำหรับทุกองค์ประกอบนี่ก็หมายความว่าถ้าองค์ประกอบ destructor โยนการทำลายเวกเตอร์ล้มเหลว ... ไม่มีวิธีที่ดีในการป้องกันข้อยกเว้นที่ถูกโยนจาก destructors ดังนั้นไลบรารี ทำให้ไม่มีการค้ำประกันถ้า destructor องค์ประกอบโยน"(จากภาคผนวก E3.2) บทความนี้ดูเหมือนจะพูดเป็นอย่างอื่น - การขว้างปา destructors นั้นไม่เป็นไร ดังนั้นคำถามของฉันคือ - หากการขว้างปาจาก destructor ส่งผลให้เกิดพฤติกรรมที่ไม่ได้กำหนดคุณจะจัดการกับข้อผิดพลาดที่เกิดขึ้นระหว่าง destructor ได้อย่างไร หากมีข้อผิดพลาดเกิดขึ้นในระหว่างการดำเนินการล้างข้อมูลคุณเพียงเพิกเฉยมันได้หรือไม่ หากเป็นข้อผิดพลาดที่สามารถจัดการสแต็กได้ แต่ไม่ถูกต้องใน destructor มันไม่เหมาะสมที่จะโยนข้อยกเว้นออกจาก destructor ใช่ไหม เห็นได้ชัดว่าข้อผิดพลาดประเภทนี้หายาก แต่เป็นไปได้

6
ส่วนใดของการโยนข้อยกเว้นมีราคาแพง
ใน Java การใช้ throw / catch เป็นส่วนหนึ่งของตรรกะเมื่อไม่มีข้อผิดพลาดจริง ๆ แล้วเป็นความคิดที่ไม่ดี (ส่วนหนึ่ง) เนื่องจากการขว้างและจับข้อยกเว้นนั้นมีราคาแพงและการทำมันหลายครั้งในลูปมักจะช้ากว่าคนอื่น โครงสร้างการควบคุมที่ไม่เกี่ยวข้องกับการโยนข้อยกเว้น คำถามของฉันคือมีค่าใช้จ่ายเกิดขึ้นในการโยน / จับเองหรือเมื่อสร้างออบเจ็กต์ข้อยกเว้น (เนื่องจากได้รับข้อมูลรันไทม์จำนวนมากรวมถึงสแต็กการเรียกใช้งาน) กล่าวอีกนัยหนึ่งถ้าฉันทำ Exception e = new Exception(); แต่อย่าโยนมันเป็นค่าใช้จ่ายส่วนใหญ่ของการขว้างปาหรือการโยนและการจับเป็นสิ่งที่มีค่าใช้จ่ายสูงหรือไม่ ฉันไม่ได้ถามว่าการวางรหัสในบล็อกแบบลอง / จับเพิ่มค่าใช้จ่ายในการดำเนินการรหัสนั้นหรือไม่ฉันกำลังถามว่าการจับข้อยกเว้นเป็นส่วนที่มีราคาแพงหรือการสร้าง (เรียกตัวสร้างสำหรับ) ข้อยกเว้นเป็นส่วนที่มีราคาแพง . อีกวิธีหนึ่งในการถามนี้คือถ้าฉันทำตัวอย่างข้อยกเว้นแล้วขว้างและจับมันซ้ำแล้วซ้ำอีกนั่นจะเร็วกว่าการสร้างข้อยกเว้นใหม่ทุกครั้งที่ฉันโยนหรือไม่

20
จะลองอีกครั้งหลังจากเกิดข้อยกเว้นได้อย่างไร
for i in range(0, 100)ฉันมีวงที่เริ่มต้นด้วย โดยปกติแล้วจะทำงานอย่างถูกต้อง แต่บางครั้งก็ล้มเหลวเนื่องจากสภาพเครือข่าย ขณะนี้ฉันได้ตั้งค่าไว้เพื่อไม่ให้ล้มเหลวจะcontinueอยู่ในข้อยกเว้น (ดำเนินการต่อไปยังหมายเลขถัดไปสำหรับi) เป็นไปได้หรือไม่ที่ฉันจะกำหนดหมายเลขเดิมอีกครั้งให้iและเรียกใช้การวนซ้ำที่ล้มเหลวของลูปอีกครั้ง

4
เมื่อฉันตรวจพบข้อยกเว้นฉันจะได้รับประเภทไฟล์และหมายเลขบรรทัดได้อย่างไร
รับข้อยกเว้นที่จะพิมพ์ดังนี้: Traceback (most recent call last): File "c:/tmp.py", line 1, in <module> 4 / 0 ZeroDivisionError: integer division or modulo by zero ฉันต้องการจัดรูปแบบเป็น: ZeroDivisonError, tmp.py, 1

7
ฉันจะใช้ Assert ได้อย่างไรแถวเพื่อยืนยันประเภทของข้อยกเว้น
ฉันจะใช้Assert.Throwsเพื่อยืนยันประเภทของข้อยกเว้นและข้อความจริงได้อย่างไร บางสิ่งเช่นนี้ Assert.Throws<Exception>( ()=>user.MakeUserActive()).WithMessage("Actual exception message") วิธีที่ฉันกำลังทดสอบจะส่งข้อความที่มีประเภทเดียวกันหลายข้อความพร้อมกับข้อความที่แตกต่างกันและฉันต้องการวิธีทดสอบว่าข้อความที่ถูกต้องนั้นถูกส่งออกไปแล้วแต่บริบท

9
ตรวจพบสแตกยอดเยี่ยม
ฉันกำลังเรียกใช้ไฟล์ a.out ของฉัน หลังจากการดำเนินการโปรแกรมจะทำงานเป็นระยะเวลาหนึ่งแล้วออกจากพร้อมข้อความ: **** stack smashing detected ***: ./a.out terminated* *======= Backtrace: =========* */lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x48)Aborted* อะไรคือสาเหตุที่เป็นไปได้สำหรับสิ่งนี้และฉันจะแก้ไขได้อย่างไร
246 c  exception  stack 

15
C ++ จับข้อยกเว้นทั้งหมด
มี c ++ เทียบเท่าของ Java หรือไม่ try { ... } catch (Throwable t) { ... } ฉันพยายามดีบักโค้ด Java / jni ที่เรียกใช้ฟังก์ชัน windows ดั้งเดิมและเครื่องเสมือนหยุดทำงาน รหัสเนทีฟดูเหมือนดีในการทดสอบหน่วยและดูเหมือนว่าจะพังเมื่อเรียกผ่าน jni กลไกการยกเว้นแบบทั่วไปจะพิสูจน์ว่ามีประโยชน์มาก
244 c++  exception 

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