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

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


6
ปิดใช้งานการยืนยันใน Python
Наэтотвопросестьответына กองมากเกินнарусском : Естьливозможностьотключитьยืนยัน? ฉันจะปิดใช้งานการยืนยันใน Python ได้อย่างไร นั่นคือถ้าการยืนยันล้มเหลวฉันไม่ต้องการให้มันโยนAssertionErrorแต่จะทำต่อไป ฉันจะทำอย่างไร?

10
จะใช้คีย์เวิร์ดพ่นสไตล์ Java ใน C # ได้อย่างไร?
ใน Java throwsคีย์เวิร์ดอนุญาตให้มีเมธอดเพื่อประกาศว่าจะไม่จัดการข้อยกเว้นด้วยตัวมันเอง แต่จะโยนมันไปที่เมธอดการเรียก มีคำหลัก / แอตทริบิวต์ที่คล้ายกันใน C # หรือไม่? หากไม่มีสิ่งที่เทียบเท่าคุณจะทำเอฟเฟกต์เดียวกัน (หรือคล้ายกัน) ให้สำเร็จได้อย่างไร?

3
ฉันจะเพิ่มข้อยกเว้นใน Rails ให้ทำงานเหมือนกับข้อยกเว้น Rails อื่น ๆ ได้อย่างไร
ฉันต้องการเพิ่มข้อยกเว้นเพื่อให้ทำเช่นเดียวกับข้อยกเว้นของ Rails ปกติ แสดงข้อยกเว้นและการติดตามสแต็กในโหมดการพัฒนาเป็นพิเศษและแสดงหน้า "ขออภัยมีข้อผิดพลาดเกิดขึ้น" ในโหมดการผลิต ฉันลองทำสิ่งต่อไปนี้: raise "safety_care group missing!" if group.nil? แต่มันเขียน"ERROR signing up, group missing!"ลงในไฟล์ development.log

16
บริการมีจุดสิ้นสุดของแอปพลิเคชันเป็นศูนย์ (ไม่ใช่โครงสร้างพื้นฐาน)
ฉันเพิ่งสร้างบริการ WCF (dll) และโฮสต์บริการ (exe) ฉันรู้ว่าบริการ WCF ของฉันทำงานอย่างถูกต้องเนื่องจากฉันสามารถเพิ่มบริการลงใน WcfTestClient ได้สำเร็จ อย่างไรก็ตามดูเหมือนว่าฉันกำลังประสบปัญหาเมื่อต้องใช้ WCF จากโฮสต์บริการ (exe) ฉันสามารถเพิ่มการอ้างอิงถึง WCF (dll) ให้กับโฮสต์บริการของฉัน (exe) และสร้างส่วนประกอบที่จำเป็นให้กับ exe เช่นตัวติดตั้งบริการโฮสต์บริการและ app.config คอมไพล์แล้วสุดท้ายติดตั้ง exe โดยใช้ InstallUtil แต่เมื่อฉันพยายามเริ่มบริการใน Microsoft Management Console บริการจะหยุดทันทีหลังจากเริ่มต้น ดังนั้นฉันจึงเริ่มตรวจสอบสิ่งที่อาจทำให้เกิดปัญหานี้และเกิดข้อผิดพลาดนี้จากบันทึกแอปพลิเคชันใน Event Viewer คำอธิบาย: ไม่สามารถเริ่มบริการได้ System.InvalidOperationException: Service 'Service' ไม่มีจุดสิ้นสุดของแอปพลิเคชัน (ไม่ใช่โครงสร้างพื้นฐาน) เป็นศูนย์ อาจเป็นเพราะไม่พบไฟล์คอนฟิกูเรชันสำหรับแอ็พพลิเคชันของคุณหรือเนื่องจากไม่พบองค์ประกอบเซอร์วิสที่ตรงกับชื่อเซอร์วิสในไฟล์คอนฟิกูเรชันหรือเนื่องจากไม่มีการกำหนดจุดสิ้นสุดในองค์ประกอบเซอร์วิส ข้อผิดพลาดนี้เกิดขึ้นจริงในOnStart; ของ exe ของฉันเมื่อฉันทำการโทรServiceHost.Open()นี้ ฉันเคยเห็นโพสต์มากมายที่มีบุคคลอื่นประสบปัญหานี้ แต่ส่วนใหญ่หากไม่ใช่ทั้งหมดอ้างว่าชื่อบริการหรือสัญญา …


4
เหตุใด "บันทึกและโยน" จึงถือเป็นการต่อต้านรูปแบบ [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ คำถามนี้เกิดจากการอภิปรายในบทความนี้ซึ่งฉันไม่ได้รับคำตอบที่ดีเลย เหตุใดจึงควรบันทึกข้อยกเว้นของคุณแล้วสร้างใหม่ (แน่นอนว่าการรักษาสแต็กติดตามเดิม) เป็นความคิดที่ไม่ดีหากคุณไม่สามารถจัดการได้

5
วิธีที่ดีที่สุดในการตั้งค่าตัวจัดการข้อยกเว้นที่ไม่ถูกจับทั่วโลกใน Android
ฉันต้องการตั้งค่าตัวจัดการข้อยกเว้นที่ไม่ถูกจับทั่วโลกสำหรับเธรดทั้งหมดในแอปพลิเคชัน Android ของฉัน ดังนั้นในApplicationคลาสย่อยของฉันฉันจึงตั้งค่าการนำไปใช้Thread.UncaughtExceptionHandlerเป็นตัวจัดการเริ่มต้นสำหรับข้อยกเว้นที่ไม่ถูกจับ Thread.setDefaultUncaughtExceptionHandler( new DefaultExceptionHandler(this)); ในการนำไปใช้งานของฉันฉันกำลังพยายามแสดงข้อความAlertDialogแสดงข้อยกเว้นที่เหมาะสม อย่างไรก็ตามดูเหมือนจะไม่ได้ผล เมื่อใดก็ตามที่เกิดข้อยกเว้นสำหรับเธรดใด ๆ ที่ไม่ได้รับการจัดการฉันจะได้รับสต็อกกล่องโต้ตอบเริ่มต้นระบบปฏิบัติการ ("ขออภัย! -Application-has-stop-expectedly อะไรคือวิธีที่ถูกต้องและเหมาะสมที่สุดในการตั้งค่าตัวจัดการเริ่มต้นสำหรับข้อยกเว้นที่ไม่ถูกจับ

22
อาจเป็นเพราะการเชื่อมจุดสิ้นสุดของบริการไม่ได้ใช้โปรโตคอล HTTP
ฉันมีบริการ WCF ที่ทำงานได้ดีบนเครื่องในพื้นที่ของฉัน ฉันวางไว้บนเซิร์ฟเวอร์และฉันได้รับข้อผิดพลาดต่อไปนี้: เกิดข้อผิดพลาดขณะที่ได้รับการตอบสนอง HTTP เพื่อ http: //xx.xx.x.xx: 8200 / บริการ / WCFClient.svc อาจเป็นเพราะการเชื่อมจุดสิ้นสุดของบริการไม่ได้ใช้โปรโตคอล HTTP นอกจากนี้ยังอาจเนื่องมาจากบริบทคำขอ HTTP ถูกเซิร์ฟเวอร์ยกเลิก (อาจเนื่องมาจากการปิดบริการ) ดูบันทึกเซิร์ฟเวอร์สำหรับรายละเอียดเพิ่มเติม] ฉันไปที่บริการใน url แล้วและมันทำงานได้อย่างถูกต้อง สิ่งที่ฉันทำเพื่อฟังก์ชั่นนี้คือการส่งคืนสตริงไปยังชื่อรูปภาพดังนั้นข้อมูลที่ส่งผ่านจึงไม่มาก ฉันได้ติดตามบันทึกและให้ข้อมูลเดียวกันกับฉัน นี่คือการกำหนดค่าไคลเอ็นต์ของฉัน: <binding name="basicHttpBinding_IWCFClient" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false"> <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> <security mode="None"> …

8
ใครเป็นคนเรียกเมธอด Java Thread interrupt () ถ้าฉันไม่ใช่
ฉันได้อ่านและอ่าน Java Concurrency in Practice อีกครั้งฉันได้อ่านหัวข้อต่างๆที่นี่ในหัวข้อนี้ฉันได้อ่านบทความของ IBM เกี่ยวกับการจัดการกับ InterruptedExceptionและยังมีบางอย่างที่ฉันไม่เข้าใจซึ่งฉันคิดว่าอาจเสียได้ แบ่งออกเป็นสองคำถาม: ถ้าฉันไม่เคยรบกวนหัวข้ออื่น ๆ ตัวเองสิ่งที่สามารถเรียกInterruptedException ? ถ้าฉันไม่เคยรบกวนหัวข้ออื่น ๆ ด้วยตัวเองโดยใช้ขัดจังหวะ () (พูดเพราะผมใช้วิธีการอื่นในการยกเลิกหัวข้อการทำงานของฉันเช่นยาพิษและในขณะที่ (! ยกเลิก)ห่วงสไตล์ [ขณะที่ทั้งสองได้อธิบายไว้ใน Jcip]) สิ่งที่ ไม่InterruptedExceptionนั้นหมายความว่าอย่างไร ฉันควรทำอย่างไรเมื่อจับได้ ปิดแอพของฉันไหม

5
เพิ่มข้อยกเว้นกับผลตอบแทนไม่มีในฟังก์ชัน?
สิ่งที่ดีกว่าในฟังก์ชันที่ผู้ใช้กำหนดเองใน Python: raiseข้อยกเว้นหรือreturn None? ตัวอย่างเช่นฉันมีฟังก์ชันที่ค้นหาไฟล์ล่าสุดในโฟลเดอร์ def latestpdf(folder): # list the files and sort them try: latest = files[-1] except IndexError: # Folder is empty. return None # One possibility raise FileNotFoundError() # Alternative else: return somefunc(latest) # In my case, somefunc parses the filename อีกตัวเลือกหนึ่งคือการออกข้อยกเว้นและจัดการกับมันในรหัสโทร แต่ฉันคิดว่ามันเป็นที่ชัดเจนมากขึ้นในการจัดการกับกว่าFileNotFoundError IndexErrorหรือเป็นรูปแบบที่ไม่ดีในการเพิ่มข้อยกเว้นด้วยชื่ออื่น?

7
เมธอดที่โยน RuntimeException ควรระบุในเมธอดซิกเนเจอร์หรือไม่
ตัวอย่างเช่นหลายวิธีในกรอบ / JDK อาจโยน java.lang.SecurityException แต่สิ่งนี้ไม่ได้ระบุไว้ในลายเซ็นของวิธีการ (เนื่องจากปกติแล้วจะสงวนไว้สำหรับข้อยกเว้นที่ตรวจสอบ) ฉันต้องการโต้แย้งว่าการประกาศ RuntimeExceptions ใน method sigs มีประโยชน์มากมาย (คล้ายกับการตรวจสอบประเภทคงที่เป็นต้น) ฉันเมาหรืออย่างอื่น?

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