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

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

9
Rethrowing ข้อยกเว้นใน Java โดยไม่สูญเสียการติดตามสแต็ก
ใน C # ฉันสามารถใช้throw;คำสั่งเพื่อสร้างข้อยกเว้นใหม่ในขณะที่รักษาการติดตามสแต็ก: try { ... } catch (Exception e) { if (e is FooException) throw; } มีบางอย่างเช่นนี้ใน Java ( ที่ไม่สูญเสียการติดตามสแต็กเดิม )?
417 java  exception 

11
“ ข้อผิดพลาดร้ายแรง: อะไรพบอย่างไม่คาดคิดขณะที่คลายค่าตัวเลือกเพิ่มเติม” หมายความว่าอะไร
โปรแกรม Swift ของฉันหยุดทำงานEXC_BAD_INSTRUCTIONและหนึ่งในข้อผิดพลาดที่คล้ายกันดังต่อไปนี้ ข้อผิดพลาดนี้หมายถึงอะไรและฉันจะแก้ไขได้อย่างไร ข้อผิดพลาดร้ายแรง: พบศูนย์โดยไม่คาดคิดในขณะที่แกะค่าที่ไม่จำเป็นออก หรือ ข้อผิดพลาดร้ายแรง: พบศูนย์โดยไม่คาดคิดในขณะที่คลายค่าทางเลือกโดยปริยาย โพสต์นี้มีวัตถุประสงค์เพื่อรวบรวมคำตอบสำหรับปัญหา "พบโดยไม่คาดคิด" เพื่อให้พวกเขาไม่กระจัดกระจายและหายาก อย่าลังเลที่จะเพิ่มคำตอบของคุณเองหรือแก้ไขคำตอบ wiki ที่มีอยู่

26
ไม่สามารถโหลดไฟล์หรือชุดประกอบ ... มีความพยายามในการโหลดโปรแกรมด้วยรูปแบบที่ไม่ถูกต้อง (System.BadImageFormatException)
ฉันมีสองโครงการProjectAและProjectB. เป็นโปรแกรมที่คอนโซลซึ่งขึ้นอยู่กับProjectB ProjectAเมื่อวานทุกอย่างทำงานได้ดี แต่ทันใดนั้นวันนี้เมื่อฉันทำงานProjectBฉันได้รับสิ่งนี้: BadImageFormatException ไม่ สามารถจัดการได้ : ไม่สามารถโหลดไฟล์หรือแอสเซมบลี 'ProjectA, เวอร์ชัน = 1.0.0.0, Culture = neutral, PublicKeyToken = null' หรือการอ้างอิงอย่างใดอย่างหนึ่ง มีความพยายามในการโหลดโปรแกรมด้วยรูปแบบที่ไม่ถูกต้อง ทั้งสองเป็นเพียงโครงการปกติโดยไม่มีการพึ่งพาโครงการอื่น ๆ ที่ไม่ใช่. Net ทั้งคู่เป็นแบบ. Net - ไม่มีรหัสเนทีฟและไม่มี P / Invoke ฉันมีโครงการอื่นที่ต้องพึ่งพาProjectAและยังทำงานได้ดี สิ่งที่ฉันได้ลอง: ตรวจสอบให้แน่ใจว่าทั้งสองโปรเจ็กต์ถูกตั้งค่าเป็น "CPU ใด ๆ " โดยที่เช็กบ็อกซ์บิลด์ถูกตรวจสอบ พวกเขาคือ. ตรวจสอบให้แน่ใจว่าทั้งโครงการสำหรับเป้าหมายกรอบเดียวกัน(สุทธิโปรไฟล์ 4.0 Client) ภายใต้ ProjectB -> การอ้างอิง -> ProjectA …

2
Mockito ทดสอบวิธีการโมฆะพ่นข้อยกเว้น
ฉันมีวิธีที่มีvoidประเภทผลตอบแทน นอกจากนี้ยังสามารถโยนข้อยกเว้นจำนวนหนึ่งได้ดังนั้นฉันต้องการทดสอบข้อยกเว้นที่ถูกโยนทิ้งไป ความพยายามทั้งหมดล้มเหลวด้วยเหตุผลเดียวกัน: วิธีการเมื่อ (T) ในประเภท Stubber ไม่สามารถใช้ได้กับข้อโต้แย้ง (เป็นโมฆะ) ความคิดใดที่ฉันจะได้รับวิธีการโยนข้อยกเว้นที่ระบุ doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));

30
ไม่สามารถลบไดเรกทอรีด้วย Directory.Delete (เส้นทาง, จริง)
ฉันใช้. NET 3.5 พยายามลบไดเรกทอรีซ้ำโดยใช้: Directory.Delete(myPath, true); ความเข้าใจของฉันคือสิ่งนี้จะเกิดขึ้นหากไฟล์มีการใช้งานหรือมีปัญหาสิทธิ์ แต่ไม่เช่นนั้นควรลบไดเรกทอรีและเนื้อหาทั้งหมด อย่างไรก็ตามฉันได้รับสิ่งนี้เป็นครั้งคราว: System.IO.IOException: The directory is not empty. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.Directory.DeleteHelper(String fullPath, String userPath, Boolean recursive) at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive) ... ฉันไม่แปลกใจที่บางครั้งวิธีการโยน แต่ฉันประหลาดใจที่ได้รับข้อความนี้เมื่อเรียกซ้ำเป็นจริง (ฉันรู้ว่าไดเรกทอรีไม่ว่างเปล่า) มีเหตุผลที่ฉันเห็นสิ่งนี้แทน AccessViolationException หรือไม่
383 c#  .net  exception  io 

23
เป็นวิธีที่ดีในการขยายข้อผิดพลาดใน JavaScript คืออะไร?
ฉันต้องการที่จะโยนบางสิ่งในรหัส JS ของฉันและฉันต้องการให้พวกเขาเป็นอินสแตนซ์ของข้อผิดพลาด แต่ฉันยังต้องการให้พวกเขาเป็นอย่างอื่น โดยทั่วไปแล้วใน Python จะมี subclass Exception สิ่งที่ควรทำใน JS คืออะไร

5
วิธีเขียน trycatch ใน R
ฉันต้องการเขียนtrycatchโค้ดเพื่อจัดการกับข้อผิดพลาดในการดาวน์โหลดจากเว็บ url <- c( "http://stat.ethz.ch/R-manual/R-devel/library/base/html/connections.html", "http://en.wikipedia.org/wiki/Xz") y <- mapply(readLines, con=url) คำสั่งสองคำสั่งเหล่านี้ทำงานได้สำเร็จ ด้านล่างนี้ฉันสร้างที่อยู่เว็บที่ไม่มีอยู่: url <- c("xxxxx", "http://en.wikipedia.org/wiki/Xz") url[1]ไม่ได้อยู่. เราจะเขียนtrycatchloop (function) อย่างไร: เมื่อ URL ไม่ถูกต้องผลลัพธ์จะเป็น: "เว็บ URL ไม่ถูกต้องไม่สามารถรับได้" เมื่อ URL ผิดรหัสจะไม่หยุด แต่ยังคงดาวน์โหลดต่อไปจนกว่าจะสิ้นสุดรายการ URL หรือไม่


16
ทำไม“ ยกเว้น: ผ่าน” การฝึกเขียนโปรแกรมที่ไม่ดี?
ฉันมักจะเห็นความคิดเห็นเกี่ยวกับคำถาม Stack Overflow อื่น ๆ เกี่ยวกับวิธีการใช้งานที่except: passหมดกำลังใจ ทำไมสิ่งนี้ถึงไม่ดี? บางครั้งฉันก็ไม่สนใจว่าข้อผิดพลาดคืออะไรและฉันต้องการที่จะดำเนินการต่อกับรหัส try: something except: pass เหตุใดการใช้except: passบล็อกที่ไม่ดี อะไรทำให้มันแย่ มันเป็นความจริงที่ว่าฉันpassมีข้อผิดพลาดหรือว่าฉันexceptผิดพลาด?

11
วิธีการโทรอย่างปลอดภัยวิธี async ใน C # โดยไม่ต้องรอ
ฉันมีasyncวิธีการที่ไม่ส่งคืนข้อมูล: public async Task MyAsyncMethod() { // do some stuff async, don't return any data } ฉันกำลังเรียกสิ่งนี้จากวิธีอื่นซึ่งคืนค่าข้อมูลบางอย่าง public string GetStringData() { MyAsyncMethod(); // this generates a warning and swallows exceptions return "hello world"; } การโทรMyAsyncMethod()โดยไม่รอมันทำให้เกิด " เพราะการโทรนี้ไม่รอวิธีการปัจจุบันยังคงทำงานก่อนที่การโทรจะเสร็จสิ้น " เตือนใน visual studio ในหน้าคำเตือนนั้นระบุว่า: คุณควรพิจารณาปราบปรามเตือนเฉพาะถ้าคุณแน่ใจว่าคุณไม่ต้องการที่จะรอให้สายตรงกันที่จะเสร็จสมบูรณ์และว่าวิธีการที่เรียกว่าจะไม่เพิ่มข้อยกเว้นใด ๆ ฉันแน่ใจว่าฉันไม่ต้องการรอให้การโทรเสร็จสมบูรณ์ ฉันไม่ต้องการหรือมีเวลา แต่การโทรอาจเพิ่มข้อยกเว้น ฉันพบปัญหานี้สองสามครั้งและฉันแน่ใจว่าเป็นปัญหาทั่วไปที่ต้องมีวิธีแก้ไขปัญหาร่วมกัน ฉันจะเรียกวิธีการ async …

6
มี "ข้อผิดพลาดในการยกเว้น" ใน IntelliJ หรือไม่
มีคุณสมบัติที่จะแบ่งการดีบักโดยอัตโนมัติเมื่อเกิดข้อยกเว้นครั้งแรกหรือไม่ ดังนั้นเรา เริ่มแอปพลิเคชัน ทำสิ่งที่ผิดปกติ มี IntelliJ โผล่ขึ้นมาในบรรทัดที่ไฮไลต์ที่เกิดข้อยกเว้น

13
สิ่งที่อาจทำให้เกิด java.lang.reflect.InvocationTargetException?
ฉันพยายามทำความเข้าใจและอ่านสิ่งที่อาจทำให้เกิด แต่ฉันไม่สามารถทำได้: ฉันมีสิ่งนี้ในรหัสของฉัน: try{ .. m.invoke(testObject); .. } catch(AssertionError e){ ... } catch(Exception e){ .. } สิ่งนั้นคือเมื่อมันพยายามเรียกใช้วิธีการบางอย่างมันจะโยน InvocationTargetExceptionแทนที่จะเป็นข้อยกเว้นที่คาดหวังอื่น ๆ (โดยเฉพาะArrayIndexOutOfBoundsException) ในฐานะที่เป็นจริงผมรู้ว่าสิ่งที่วิธีการที่จะเรียกผมเดินตรงไปยังรหัสวิธีนี้และเพิ่มลองจับบล็อกบรรทัดที่คิดว่าจะโยน ArrayIndexOutOfBoundsExceptionและมันจริงๆโยนArrayIndexOutOfBoundsExceptionตามที่คาดไว้ แต่เมื่อขึ้นไปก็เปลี่ยนไปInvocationTargetExceptionและในรหัสข้างต้นcatch(Exception e) e คือInvocationTargetExceptionและไม่ArrayIndexOutOfBoundsException เป็นไปตามที่คาดไว้ สิ่งใดที่อาจทำให้เกิดพฤติกรรมดังกล่าวหรือฉันจะตรวจสอบสิ่งนั้นได้อย่างไร

10
วิธีการสร้างใหม่ InnerException โดยไม่สูญเสียการติดตามสแต็คใน C # ได้อย่างไร
ฉันกำลังเรียกวิธีสะท้อนซึ่งอาจทำให้เกิดข้อยกเว้น ฉันจะส่งข้อยกเว้นไปยังผู้โทรโดยไม่มีการสะท้อนของผู้คลุมรอบได้อย่างไร ฉันกำลัง rethrowing InnerException แต่สิ่งนี้จะทำลายการติดตามสแต็ก รหัสตัวอย่าง: public void test1() { // Throw an exception for testing purposes throw new ArgumentException("test1"); } void test2() { try { MethodInfo mi = typeof(Program).GetMethod("test1"); mi.Invoke(this, null); } catch (TargetInvocationException tiex) { // Throw the new exception throw tiex.InnerException; } }
305 c#  .net  exception 


25
สาเหตุของ java.lang.ArrayIndexOutOfBoundsException คืออะไรและฉันจะป้องกันได้อย่างไร
อะไรArrayIndexOutOfBoundsExceptionหมายและวิธีการที่ฉันจะกำจัดมันได้หรือไม่ นี่คือตัวอย่างโค้ดที่ทำให้เกิดข้อยกเว้น: String[] names = { "tom", "bob", "harry" }; for (int i = 0; i <= names.length; i++) { System.out.println(names[i]); }

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