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

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

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

6
วัตถุที่ถูกล็อกจะยังคงถูกล็อกอยู่หรือไม่หากเกิดข้อยกเว้นขึ้นภายใน
ในแอพ ac # threading ถ้าฉันจะล็อคอ็อบเจกต์ให้เราพูดคิวและถ้ามีข้อยกเว้นเกิดขึ้นอ็อบเจกต์จะยังคงล็อคอยู่หรือไม่ นี่คือรหัสหลอก: int ii; lock(MyQueue) { MyClass LclClass = (MyClass)MyQueue.Dequeue(); try { ii = int.parse(LclClass.SomeString); } catch { MessageBox.Show("Error parsing string"); } } ตามที่ฉันเข้าใจรหัสหลังจากการจับไม่ได้ดำเนินการ - แต่ฉันสงสัยว่าการล็อกจะถูกปลดปล่อยหรือไม่

7
ฉันควรใช้ AppDomain.CurrentDomain.BaseDirectory หรือ System.Environment.CurrentDirectory
ฉันมีไฟล์ exe สองไฟล์ในโฟลเดอร์เดียวกันฉันสามารถเรียกใช้ exe2 จากปุ่มใน exe1 วันนี้ฉันสังเกตเห็นลูกค้าในเซสชันรีโมต (บริการเทอร์มินัล) และ exe2 ล้มเหลวในการเรียกใช้ข้อผิดพลาด 'ไม่พบไฟล์' แต่ exe1 อยู่ในไดเร็กทอรีเดียวกันเมื่อเราตรวจสอบ ดังนั้นผมควรจะใช้AppDomain.CurrentDomain.BaseDirectoryหรือSystem.Environment.CurrentDirectory ? ขอบคุณ
86 c#  exception 

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

10
วิธีการเปลี่ยนข้อยกเว้นเดียวกันใน SQL Server
ฉันต้องการลบข้อยกเว้นเดียวกันใน SQL Server ที่เพิ่งเกิดขึ้นในบล็อกลองของฉัน ฉันสามารถส่งข้อความเดียวกันได้ แต่ฉันต้องการแสดงข้อผิดพลาดเดียวกัน BEGIN TRANSACTION BEGIN TRY INSERT INTO Tags.tblDomain (DomainName, SubDomainId, DomainCode, Description) VALUES(@DomainName, @SubDomainId, @DomainCode, @Description) COMMIT TRANSACTION END TRY BEGIN CATCH declare @severity int; declare @state int; select @severity=error_severity(), @state=error_state(); RAISERROR(@@Error,@ErrorSeverity,@state); ROLLBACK TRANSACTION END CATCH RAISERROR(@@Error, @ErrorSeverity, @state); บรรทัดนี้จะแสดงข้อผิดพลาด แต่ฉันต้องการฟังก์ชันแบบนั้น นี้ทำให้เกิดข้อผิดพลาดที่มีจำนวนข้อผิดพลาด 50000 แต่ฉันต้องการหมายเลขข้อผิดพลาดจะถูกโยนว่าผมผ่าน@@error, ฉันต้องการจับข้อผิดพลาดนี้ไม่ที่ส่วนหน้า …


18
โซลูชัน True-way ใน Java: แยกวิเคราะห์ตัวเลข 2 ตัวจาก 2 สตริงแล้วส่งคืนผลรวม
ค่อนข้างเป็นคำถามโง่ ๆ ให้รหัส: public static int sum(String a, String b) /* throws? WHAT? */ { int x = Integer.parseInt(a); // throws NumberFormatException int y = Integer.parseInt(b); // throws NumberFormatException return x + y; } คุณช่วยบอกได้ไหมว่าเป็น Java ที่ดีหรือไม่? สิ่งที่ฉันกำลังพูดถึงคือNumberFormatExceptionเป็นข้อยกเว้นที่ไม่ได้ตรวจสอบ คุณไม่จำเป็นต้องระบุว่าเป็นส่วนหนึ่งของsum()ลายเซ็น นอกจากนี้เท่าที่ผมเข้าใจความคิดของข้อยกเว้นไม่ถูกตรวจสอบเป็นเพียงสัญญาณว่าการดำเนินการของโปรแกรมไม่ถูกต้องและมากยิ่งขึ้นจับข้อยกเว้นไม่ถูกตรวจสอบเป็นความคิดที่ไม่ดีเพราะมันก็เหมือนกับการแก้ไขโปรแกรมที่ไม่ดีที่รันไทม์ ใครช่วยชี้แจงได้ไหมว่า: ฉันควรระบุNumberFormatExceptionเป็นส่วนหนึ่งของลายเซ็นของเมธอด ฉันควรกำหนดข้อยกเว้นการตรวจสอบของตัวเอง ( BadDataException) จับภายในวิธีการและอีกครั้งโยนมันเป็นNumberFormatExceptionBadDataException ฉันควรกำหนดข้อยกเว้นการตรวจสอบของฉันเอง ( BadDataException) ตรวจสอบความถูกต้องของสตริงทั้งสองด้วยวิธีใดวิธีหนึ่งเช่นนิพจน์ทั่วไปและโยนของฉันBadDataExceptionหากไม่ตรงกัน …

3
การจับข้อยกเว้นหลายข้อใน Java-8
ในขณะที่ลองใช้คุณสมบัติมัลติแคปฉันพบว่าm1()วิธีการของฉันทุกอย่างทำงานได้ดีอย่างที่คาดไว้ อย่างไรก็ตามในm2()รหัสเดียวกันไม่ได้รวบรวม ฉันเพิ่งเปลี่ยนไวยากรณ์เพื่อลดจำนวนบรรทัดของรหัส public class Main { public int m1(boolean bool) { try { if (bool) { throw new Excep1(); } throw new Excep2(); //This m1() is compiling abs fine. } catch (Excep1 | Excep2 e) { return 0; } } public int m2(boolean b) { try { throw b …

2
ฉันจะส่งชุดข้อยกเว้นเป็นต้นเหตุได้อย่างไร
วิธีการบางอย่างmyMethodจะเรียกใช้การประหารชีวิตหลายขนานและรอการยุติของพวกเขา การดำเนินการแบบขนานเหล่านี้สามารถเสร็จสิ้นโดยมีข้อยกเว้น เพื่อmyMethodรับรายการข้อยกเว้น ฉันต้องการส่งรายการข้อยกเว้นเป็นสาเหตุหลัก แต่สาเหตุหลักอาจเป็นเพียงข้อยกเว้นเดียว แน่ใจว่าฉันสามารถสร้างข้อยกเว้นของตัวเองเพื่อให้บรรลุสิ่งที่ฉันต้องการ แต่ฉันต้องการที่จะรู้ว่า Java, Spring หรือ Spring Batch มีบางสิ่งเช่นนี้หรือไม่
52 java  exception 

5
วิธีจับตัวแปรทั้งหมดของข้อยกเว้นทั่วไปใน C #
ฉันต้องการที่จะตรวจจับตัวแปรทั้งหมดของคลาสข้อยกเว้นทั่วไปและฉันสงสัยว่ามีวิธีที่จะทำโดยไม่มีบล็อก catch ที่หลากหลายหรือไม่ ตัวอย่างเช่นฉันมีคลาสยกเว้น: public class MyException<T> : Exception { public string MyProperty { get; } public MyException(T prop) : base(prop.ToString()) { MyProperty = prop?.ToString(); } } และสองคลาสที่ได้รับ: public class MyDerivedStringException : MyException<string> { public MyDerivedStringException(string prop) : base(prop) { } } public class MyDerivedIntException : MyException<int> { public MyDerivedIntException(int …
22 c#  generics  exception 


1
จับข้อยกเว้นและ rethrowing แต่ไม่ใช่ข้อยกเว้น
ฉันสะดุดรหัสมองสิ่งนี้: void run() { try { doSomething(); } catch (Exception ex) { System.out.println("Error: " + ex); throw ex; } } void doSomething() { throw new RuntimeException(); } รหัสนี้ทำให้ฉันประหลาดใจเพราะมันดูเหมือนว่า - วิธีการที่run()มีความสามารถในการโยนExceptionเพราะมันจับExceptionแล้ว rethrows แต่วิธีการที่ไม่ได้ประกาศว่าจะโยนExceptionและเห็นได้ชัดว่าไม่จำเป็นต้องเป็น รหัสนี้รวบรวมได้ดี (ใน Java 11 อย่างน้อย) ความคาดหวังของฉันคือฉันจะต้องประกาศthrows Exceptionในrun()-method ข้อมูลเพิ่มเติม ในทำนองเดียวกันหากdoSomethingมีการประกาศให้โยนIOExceptionดังนั้นIOExceptionจะต้องประกาศในวิธีการrun()เท่านั้นแม้ว่าExceptionจะถูกจับและโยนใหม่ void run() throws IOException { try { doSomething(); } …
10 java  exception  throws 

2
แยกแยะระหว่างข้อยกเว้นและความล้มเหลวในบล็อกจับ [RAKU]
เรารู้ว่าสามารถจัดการความล้มเหลวได้โดยบล็อกการจับ ในตัวอย่างต่อไปนี้เราสร้างความล้มเหลว 'AdHoc' (ใน other-sub) และเราจัดการข้อยกเว้นในบล็อก CATCH (ใน my-sub) sub my-sub { try { CATCH { when X::AdHoc { say 'AdHoc Exception handled here'; .resume } default {say 'Other Exception'; .resume} } my $b = other-sub(); $b.so ?? $b.say !! 'This was a Failure'.say; } } sub other-sub { fail …


1
[iOS 13]: ข้อยกเว้นร้ายแรง: NSInvalidArgumentException ไม่สามารถเพิ่มตัวเองเป็นมุมมองย่อย ([NSCache init])
ฉันเห็นปัญหา / คำถามที่คล้ายกันใน Stack Overflow แต่ไม่ได้ช่วยอะไร ฉันสร้างแอพด้วย Xcode 11 และ iOS 13 SDK ปัญหาคือฉันได้รับข้อขัดข้องทั้งหมดใน iOS 13+ เท่านั้นแม้ว่าแอปของฉันรองรับ iOS 10+ และมีผู้ใช้ประมาณ ~ 50% iOS 12 นอกจากนี้ฉันไม่สามารถดีบักหรือทำซ้ำได้ จากข้อมูลนี้ฉันสรุปปัญหานี้ต้องเฉพาะกับ iOS 13 เมื่อเร็ว ๆ นี้มีใครเคยเจอปัญหาเดียวกันบ้างไหม สาเหตุที่เป็นไปได้วิธีแก้ปัญหา? นี่คือการติดตามสแต็กจาก Crashlytics: Fatal Exception: NSInvalidArgumentException 0 CoreFoundation 0x1c25e1c30 __exceptionPreprocess 1 libobjc.A.dylib 0x1c22fc0c8 objc_exception_throw 2 CoreFoundation 0x1c24d13ac -[NSCache init] …
9 ios  xcode  exception 

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