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

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

9
มีข้อยกเว้นที่ถูกบล็อกการจับภายใน - จะถูกจับอีกครั้งหรือไม่
นี่อาจดูเหมือนคำถาม 101 รายการและฉันคิดว่าฉันรู้คำตอบ แต่ตอนนี้พบว่าตัวเองต้องการตรวจสอบอีกครั้ง ในรหัสของชิ้นส่วนด้านล่างนี้ข้อยกเว้นจะถูกโยนลงในบล็อกการจับครั้งแรกจากนั้นจะถูกจับโดยบล็อกการจับข้อยกเว้นทั่วไปด้านล่างหรือไม่ try { // Do something } catch(IOException e) { throw new ApplicationException("Problem connecting to server"); } catch(Exception e) { // Will the ApplicationException be caught here? } ฉันคิดเสมอว่าคำตอบจะไม่ แต่ตอนนี้ฉันมีพฤติกรรมแปลก ๆ ที่อาจเกิดจากสิ่งนี้ คำตอบน่าจะเหมือนกันสำหรับภาษาส่วนใหญ่ แต่ฉันทำงานใน Java
180 java  exception 

8
BaseException.message เลิกใช้ใน Python 2.6
ฉันได้รับคำเตือนว่า BaseException.message ไม่สนับสนุนใน Python 2.6 เมื่อฉันใช้ข้อยกเว้นที่กำหนดโดยผู้ใช้ต่อไปนี้: class MyException(Exception): def __init__(self, message): self.message = message def __str__(self): return repr(self.message) นี่คือคำเตือน: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6 self.message = message เกิดอะไรขึ้นกับสิ่งนี้? ฉันต้องเปลี่ยนอะไรเพื่อกำจัดคำเตือนที่ไม่เห็นด้วย

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

7
django ข้อผิดพลาด MultiValueDictKeyError ฉันจะจัดการกับมันได้อย่างไร
ฉันพยายามบันทึกวัตถุในฐานข้อมูลของฉัน แต่มันมีMultiValueDictKeyErrorข้อผิดพลาดเกิดขึ้น ปัญหาอยู่ในแบบฟอร์มการis_privateเป็นตัวแทนจากช่องทำเครื่องหมาย หากไม่ได้เลือกช่องทำเครื่องหมายจะไม่มีการส่งผ่านใด ๆ นี่คือข้อผิดพลาดที่ได้รับการโยน ฉันจะจัดการกับข้อยกเว้นนี้อย่างถูกต้องและจับได้อย่างไร บรรทัดคือ is_private = request.POST['is_private']
174 python  django  exception 

11
ความแตกต่างระหว่างข้อยกเว้นและข้อผิดพลาด
ฉันพยายามเรียนรู้เพิ่มเติมเกี่ยวกับ Java พื้นฐานและประเภท Throwables ที่แตกต่างกันใครสามารถแจ้งให้ฉันทราบถึงความแตกต่างระหว่างข้อยกเว้นและข้อผิดพลาดได้หรือไม่?

2
java.net.MalformedURLException: ไม่มีโปรโตคอล
ฉันได้รับข้อยกเว้น Java เช่น: java.net.MalformedURLException: no protocol โปรแกรมของฉันพยายามแยกสตริง XML โดยใช้: Document dom; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); dom = db.parse(xml); สตริง XML ประกอบด้วย: String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"+ " <s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">"+ " <s:Header>"+ " <ActivityId CorrelationId=\"15424263-3c01-4709-bec3-740d1ab15a38\" xmlns=\"http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics\">50d69ff9-8cf3-4c20-afe5-63a9047348ad</ActivityId>"+ " <clalLog_CorrelationId xmlns=\"http://clalbit.co.il/clallog\">eb791540-ad6d-48a3-914d-d74f57d88179</clalLog_CorrelationId>"+ " </s:Header>"+ " <s:Body>"+ " <ValidatePwdAndIPResponse xmlns=\"http://tempuri.org/\">"+ …
173 java  xml  exception 

4
ฉันจะจับคำเตือน numpy ได้อย่างไรว่าเป็นข้อยกเว้น (ไม่ใช่แค่การทดสอบ)
ฉันต้องสร้างพหุนาม Lagrange ใน Python สำหรับโครงการที่ฉันทำ ฉันกำลังทำรูปแบบบาริเซนทริกเพื่อหลีกเลี่ยงการใช้ลูปแบบชัด ๆ ซึ่งตรงข้ามกับสไตล์ที่แตกต่างของนิวตัน ปัญหาที่ฉันมีคือฉันต้องจับแบ่งเป็นศูนย์ แต่ Python (หรืออาจจะเป็นก้อน) เพียงแค่ทำให้มันเป็นคำเตือนแทนข้อยกเว้นปกติ ดังนั้นสิ่งที่ฉันต้องรู้วิธีการทำคือการจับคำเตือนนี้ราวกับว่ามันเป็นข้อยกเว้น คำถามที่เกี่ยวข้องกับสิ่งที่ฉันพบในเว็บไซต์นี้ไม่ได้ตอบในวิธีที่ฉันต้องการ นี่คือรหัสของฉัน: import numpy as np import matplotlib.pyplot as plt import warnings class Lagrange: def __init__(self, xPts, yPts): self.xPts = np.array(xPts) self.yPts = np.array(yPts) self.degree = len(xPts)-1 self.weights = np.array([np.product([x_j - x_i for x_j in xPts …

3
ApplicationException คืออะไรใน. NET
จะโยนข้อยกเว้นผมมักจะใช้ในตัวชั้นเรียนข้อยกเว้นเช่นและArgumentNullException NotSupportedExceptionอย่างไรก็ตามบางครั้งฉันจำเป็นต้องใช้ข้อยกเว้นที่กำหนดเองและในกรณีที่ฉันเขียน: class SlippedOnABananaException : Exception { } class ChokedOnAnAppleException : Exception { } และอื่น ๆ จากนั้นฉันก็โยนและจับสิ่งเหล่านี้ในรหัสของฉัน แต่วันนี้ฉันเข้าApplicationExceptionเรียน - ฉันควรจะใช้สิ่งนั้นแทนหรือไม่? เพื่ออะไร ดูเหมือนไม่มีประสิทธิภาพที่จะมีคลาส Exception ที่เหมือนกันอย่างมีประสิทธิภาพจำนวนมากที่มีชื่อต่างกัน (โดยปกติฉันไม่ต้องการฟังก์ชันใด ๆ เลย) แต่ฉันไม่ชอบความคิดที่จะจับรหัสทั่วไปApplicationExceptionและต้องใช้รหัสพิเศษเพื่อพิจารณาว่าข้อผิดพลาดคืออะไร ApplicationExceptionรหัสของฉันควรตรงกับที่ใด?

6
ไม่พบข้อยกเว้น Java?
ฉันมีปัญหาทางทฤษฎีเล็กน้อยกับการสร้างแบบลองจับ ฉันสอบภาคปฏิบัติเมื่อวานนี้เกี่ยวกับ Java และฉันไม่เข้าใจตัวอย่างต่อไปนี้: try { try { System.out.print("A"); throw new Exception("1"); } catch (Exception e) { System.out.print("B"); throw new Exception("2"); } finally { System.out.print("C"); throw new Exception("3"); } } catch (Exception e) { System.out.print(e.getMessage()); } คำถามคือ "ผลลัพธ์จะเป็นอย่างไร" ฉันค่อนข้างแน่ใจว่ามันจะเป็น AB2C3 แต่น่าแปลกใจ แต่ก็ไม่เป็นความจริง คำตอบที่ถูกต้องคือ ABC3 (ทดสอบแล้วและเป็นแบบนั้นจริงๆ) คำถามของฉันคือข้อยกเว้น ("2") หายไปไหน

9
ฉันจะได้รับทับทิมเพื่อพิมพ์ backtrace เต็มแทนการตัดทอน?
เมื่อฉันได้รับการยกเว้นมักจะมาจากส่วนลึกภายใน call stack เมื่อสิ่งนี้เกิดขึ้นบ่อยกว่านั้นบรรทัดรหัสที่ละเมิดจริงจะถูกซ่อนไว้จากฉัน: tmp.rb:7:in `t': undefined method `bar' for nil:NilClass (NoMethodError) from tmp.rb:10:in `s' from tmp.rb:13:in `r' from tmp.rb:16:in `q' from tmp.rb:19:in `p' from tmp.rb:22:in `o' from tmp.rb:25:in `n' from tmp.rb:28:in `m' from tmp.rb:31:in `l' ... 8 levels... from tmp.rb:58:in `c' from tmp.rb:61:in `b' from tmp.rb:64:in `a' from tmp.rb:67 …

30
file_put_contents (meta / services.json): ไม่สามารถเปิดสตรีม: ปฏิเสธการอนุญาต
ฉันใหม่สำหรับ Laravel ฉันพยายามที่จะเปิดhttp://localhost/test/public/และได้รับ ข้อผิดพลาดในตัวจัดการข้อยกเว้น ฉัน googled ไปรอบ ๆ และเปลี่ยนการอนุญาตของไดเรกทอรีจัดเก็บโดยใช้chmod -R 777 app/storageแต่ไม่มีประโยชน์ ผมเปลี่ยนdebug=>trueในapp.phpและเยี่ยมชมหน้าและมีข้อผิดพลาดในการจัดการข้อยกเว้น: ไม่สามารถเปิดสตรีมหรือไฟล์ "/var/www/html/test/app/storage/logs/laravel.log": ไม่สามารถเปิดสตรีมได้: ไม่สามารถเปิดสตรีม: การอนุญาตถูกปฏิเสธใน / var / www / html / test / bootstrap / รวบรวม PHP: 8423 จากนั้นฉันเปลี่ยนสิทธิ์ของไดเรกทอรีที่เก็บข้อมูลโดยใช้คำสั่งchmod -R 644 app/storageและข้อผิดพลาด 'ข้อผิดพลาดในตัวจัดการข้อยกเว้น' หายไปและโหลดหน้า แต่ในที่นั่นฉันได้รับสิ่งนี้: file_put_contents (/var/www/html/laravel/app/storage/meta/services.json): ไม่สามารถเปิดสตรีม: ปฏิเสธการอนุญาต


7
Visual Studio: วิธีการแบ่งข้อยกเว้นการจัดการ?
ฉันต้องการให้ Visual Studio หยุดพักเมื่อมีข้อยกเว้นเกิดขึ้น (เช่นฉันไม่ต้องการเห็นข้อความ "โอกาสแรก" ฉันต้องการดีบักข้อยกเว้นจริง) เช่นฉันต้องการให้ดีบักเกอร์แตกที่ข้อยกเว้น: try { System.IO.File.Delete(someFilename); } catch (Exception) { //we really don't care at runtime if the file couldn't be deleted } ฉันเจอหมายเหตุเหล่านี้สำหรับ Visual Studio.NET: 1) ใน VS.NET ไปที่เมนูดีบั๊ก >> "ข้อยกเว้น ... " >> "ข้อยกเว้นรันไทม์ภาษาทั่วไป" >> "ระบบ" และเลือก "System.NullReferenceException" 2) ที่ด้านล่างของกล่องโต้ตอบนั้นจะมีกล่อง "เมื่อข้อยกเว้นถูกโยน:" ให้เลือก "บุกเข้าไปในดีบั๊ก" …

2
โยนข้อผิดพลาด ('msg') เทียบกับโยนข้อผิดพลาดใหม่ ('msg')
var err1 = Error('message'); var err2 = new Error('message'); ความแตกต่างคืออะไร? มองไปที่พวกเขาในคอนโซลโครเมี่ยมพวกเขามีลักษณะเหมือนกัน คุณสมบัติเดียวกันบนวัตถุและ__proto__สายโซ่เดียวกัน ดูเหมือนว่าErrorจะเป็นเหมือนโรงงาน อันไหนถูกต้องและทำไม

7
มีข้อยกเว้นอะไรบ้างที่ควรส่งออกมาสำหรับพารามิเตอร์ที่ไม่ถูกต้องหรือไม่คาดคิดใน.
มีข้อยกเว้นชนิดใดควรถูกส่งออกเนื่องจากพารามิเตอร์ไม่ถูกต้องหรือไม่คาดคิดใน. NET เมื่อใดที่ฉันจะเลือกหนึ่งแทนที่จะเป็นอื่น ติดตาม: ข้อยกเว้นใดที่คุณจะใช้หากคุณมีฟังก์ชั่นที่คาดว่าจะเป็นจำนวนเต็มสอดคล้องกับเดือนและคุณผ่านใน '42' สิ่งนี้จะตกอยู่ในหมวดหมู่ "นอกขอบเขต" แม้ว่าจะไม่ใช่คอลเล็กชันหรือไม่
163 c#  .net  vb.net  exception 

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