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

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

6
ตรวจพบข้อยกเว้นทั่วโลกในแอปพลิเคชัน WPF หรือไม่
เรามีแอปพลิเคชั่น WPF ซึ่งบางส่วนของมันอาจเกิดข้อยกเว้นในขณะทำงาน ฉันต้องการจับข้อยกเว้นที่ไม่สามารถจัดการได้ทั่วโลกและบันทึกพวกเขา แต่อย่างอื่นดำเนินการโปรแกรมต่อไปราวกับว่าไม่มีอะไรเกิดขึ้น (kinda เช่น VB's On Error Resume Next) เป็นไปได้ใน C #? และถ้าเป็นเช่นนั้นฉันจะต้องวางรหัสการจัดการข้อยกเว้นไว้ที่ไหน ขณะนี้ฉันไม่เห็นจุดใดจุดหนึ่งที่ฉันสามารถล้อมรอบtry/ catchและซึ่งจะจับข้อยกเว้นทั้งหมดที่อาจเกิดขึ้น และถึงอย่างนั้นฉันก็จะเหลืออะไรก็ตามที่ถูกประหารเพราะจับได้ หรือฉันกำลังคิดผิดทางอย่างน่ากลัวที่นี่? การทางพิเศษแห่งประเทศไทย:เพราะหลายคนด้านล่างชี้ให้เห็น: แอพลิเคชันไม่ได้สำหรับการควบคุมโรงไฟฟ้านิวเคลียร์ ถ้ามันล้มเหลวมันไม่ได้เป็นเรื่องใหญ่อะไร แต่มีข้อยกเว้นแบบสุ่มที่เกี่ยวข้องกับ UI เป็นส่วนใหญ่เป็นสิ่งที่สร้างความรำคาญในบริบทที่มันจะถูกใช้ มี (และอาจจะยังคงเป็น) บางส่วนและเนื่องจากใช้สถาปัตยกรรมปลั๊กอินและอาจขยายโดยผู้อื่น (เช่นนักเรียนในกรณีนั้นดังนั้นจึงไม่มีนักพัฒนาที่มีประสบการณ์ที่สามารถเขียนโค้ดปราศจากข้อผิดพลาดได้อย่างสมบูรณ์) สำหรับข้อยกเว้นที่ตรวจพบ: ฉันบันทึกไว้ในไฟล์บันทึกรวมถึงการติดตามสแต็กทั้งหมด นั่นคือจุดรวมของการออกกำลังกายนั้น เพียงเพื่อตอบโต้คนเหล่านั้นที่กำลังเปรียบเทียบกับ OERN ของ VB อย่างแท้จริง ฉันรู้ว่าการละเว้นข้อผิดพลาดบางประเภทเป็นอันตรายและอาจทำให้แอปพลิเคชันของฉันเสียหาย อย่างที่เคยกล่าวไว้ก่อนหน้านี้โปรแกรมนี้ไม่ได้มีความสำคัญสำหรับทุกคน ไม่มีใครในใจที่ถูกต้องของพวกเขาจะพนันความอยู่รอดของอารยธรรมมนุษย์ในนั้น มันเป็นเพียงเครื่องมือเล็ก ๆ สำหรับการทดสอบแนวทางการออกแบบบางอย่าง วิศวกรรมซอฟต์แวร์. สำหรับการใช้งานแอปพลิเคชั่นในทันทีมีหลายสิ่งที่อาจเกิดขึ้นได้ยกเว้น: ไม่มีการจัดการข้อยกเว้น - กล่องโต้ตอบข้อผิดพลาดและการออกจากแอปพลิเคชัน ต้องทำการทดสอบซ้ำแม้ว่าจะมีอีกเรื่องหนึ่ง …

3
วิธี deserialize วัตถุ JObject to .NET
ฉันมีความสุขใช้ห้องสมุด Newtonsoft JSON ตัวอย่างเช่นฉันจะสร้างJObjectจากวัตถุ. NET ในกรณีนี้เป็นตัวอย่างของข้อยกเว้น (อาจหรืออาจจะไม่เป็นคลาสย่อย) if (result is Exception) var jobjectInstance = JObject.FromObject(result); ตอนนี้ฉันรู้ว่าไลบรารีสามารถลบข้อความ JSON (เช่นสตริง) ให้กับวัตถุได้ // only works for text (string) Exception exception = JsonConvert.DeserializeObject<Exception>(jsontext); แต่สิ่งที่ฉันกำลังมองหาคือ: // now i do already have an JObject instance Exception exception = jobjectInstance.???? เป็นที่ชัดเจนว่าฉันสามารถJObjectย้อนกลับไปที่ข้อความ JSON จากนั้นใช้ฟังก์ชั่น deserialize แต่ดูเหมือนว่าจะย้อนกลับไป


30
สิ่งที่ต้องทำใน TransactionTooLargeException
TransactionTooLargeExceptionผมได้ ไม่สามารถทำซ้ำได้ ในเอกสารมันบอกว่า ธุรกรรม Binder ล้มเหลวเนื่องจากมีขนาดใหญ่เกินไป ระหว่างการเรียกโพรซีเดอร์แบบรีโมตอาร์กิวเมนต์และค่าส่งคืนของการโทรจะถูกถ่ายโอนเป็นวัตถุพัสดุที่เก็บไว้ในบัฟเฟอร์ธุรกรรม Binder หากอาร์กิวเมนต์หรือค่าส่งคืนมีขนาดใหญ่เกินกว่าที่จะพอดีกับบัฟเฟอร์ของธุรกรรมการโทรจะล้มเหลวและ TransactionTooLargeException จะถูกส่งออกไป ... มีสองผลลัพธ์ที่เป็นไปได้เมื่อการเรียกขั้นตอนระยะไกลโยน TransactionTooLargeException ไคลเอ็นต์ไม่สามารถส่งคำขอไปยังบริการ (เป็นไปได้มากว่าข้อโต้แย้งมีขนาดใหญ่เกินไปที่จะใส่ในบัฟเฟอร์ของธุรกรรม) หรือบริการไม่สามารถส่งการตอบกลับกลับไปยังไคลเอนต์ได้ มีขนาดใหญ่เกินกว่าที่จะพอดีกับบัฟเฟอร์ของธุรกรรม) ... ดังนั้นฉันจะผ่านหรือรับข้อโต้แย้งที่เกินขีด จำกัด ที่ไม่รู้จัก ที่ไหน? stacktrace ไม่แสดงสิ่งใดที่มีประโยชน์: java.lang.RuntimeException: Adding window failed at android.view.ViewRootImpl.setView(ViewRootImpl.java:548) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:406) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:320) at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:152) at android.view.Window$LocalWindowManager.addView(Window.java:557) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2897) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) at android.app.ActivityThread.access$600(ActivityThread.java:139) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262) at android.os.Handler.dispatchMessage(Handler.java:99) at …
239 android  exception 

13
หลาม: ฉันจะรู้ได้อย่างไรว่าเกิดข้อยกเว้นประเภทใดขึ้น
ฉันมีฟังก์ชั่นที่เรียกโดยโปรแกรมหลัก: try: someFunction() except: print "exception happened!" แต่ในช่วงกลางของการดำเนินการของฟังก์ชั่นมันทำให้เกิดข้อยกเว้นจึงข้ามไปยังexceptส่วน ฉันจะดูสิ่งที่เกิดขึ้นในสิ่งsomeFunction()ที่ทำให้เกิดข้อยกเว้นเกิดขึ้นได้อย่างไร
230 python  exception 

7
วิธีที่ถูกต้องในการสร้าง. NET Exception แบบอนุกรมคืออะไร?
โดยเฉพาะอย่างยิ่งเมื่อข้อยกเว้นมีวัตถุที่กำหนดเองซึ่งอาจหรือไม่สามารถทำให้เป็นอนุกรมได้ นำตัวอย่างนี้: public class MyException : Exception { private readonly string resourceName; private readonly IList<string> validationErrors; public MyException(string resourceName, IList<string> validationErrors) { this.resourceName = resourceName; this.validationErrors = validationErrors; } public string ResourceName { get { return this.resourceName; } } public IList<string> ValidationErrors { get { return this.validationErrors; } } } …

7
Java List.add () UnsupportedOperationException
ฉันพยายามที่จะเพิ่มวัตถุกับList<String>อินสแตนซ์ UnsupportedOperationExceptionแต่มันพ่น ไม่มีใครรู้ว่าทำไม รหัส Java ของฉัน: String[] membersArray = request.getParameterValues('members'); List<String> membersList = Arrays.asList(membersArray); for (String member : membersList) { Person person = Dao.findByName(member); List<String> seeAlso; seeAlso = person.getSeeAlso(); if (!seeAlso.contains(groupDn)){ seeAlso.add(groupDn); person.setSeeAlso(seeAlso); } } ข้อความแสดงข้อผิดพลาด: java.lang.UnsupportedOperationException java.util.AbstractList.add (ไม่ทราบแหล่งที่มา) java.util.AbstractList.add (ไม่ทราบแหล่งที่มา) javax.servlet.http.HttpServlet.service (HttpServlet.java:641) javax.servlet.http.HttpServlet.service (HttpServlet.java:722)


27
จะแก้ปัญหา java.lang.NoClassDefFoundError ได้อย่างไร?
ฉันได้ลองทั้งสองตัวอย่างในJava Tutorialsของ Oracle แล้ว พวกเขาทั้งสองรวบรวมปรับ แต่ในเวลาทำงานทั้งสองเกิดขึ้นกับข้อผิดพลาดนี้: Exception in thread "main" java.lang.NoClassDefFoundError: graphics/shapes/Square at Main.main(Main.java:7) Caused by: java.lang.ClassNotFoundException: graphics.shapes.Square at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 1 more ฉันคิดว่าฉันอาจมีMain.javaไฟล์ในโฟลเดอร์ที่ไม่ถูกต้อง นี่คือลำดับชั้นไดเรกทอรี: graphics ├ Main.java ├ shapes | ├ Square.java | ├ Triangle.java ├ …

20
เมื่อใดที่ฉันควรใช้ Debug.Assert ()
ฉันเป็นวิศวกรซอฟต์แวร์มืออาชีพมาประมาณหนึ่งปีแล้วหลังจากสำเร็จการศึกษาระดับปริญญาตรี ฉันรู้เกี่ยวกับการยืนยันในขณะที่ใน C ++ และ C แต่ไม่รู้ว่าพวกเขามีอยู่ใน C # และ. NET เลยจนกระทั่งเมื่อไม่นานมานี้ รหัสการผลิตของเราไม่มีการยืนยันใด ๆ และคำถามของฉันคือสิ่งนี้ ... ฉันควรเริ่มใช้ Asserts ในรหัสการผลิตของเราหรือไม่ และถ้าเป็นเช่นนั้นการใช้งานที่เหมาะสมที่สุดเมื่อใด มันจะทำให้รู้สึกมากกว่าที่จะทำ Debug.Assert(val != null); หรือ if ( val == null ) throw new exception();

22
ฉันจะสร้างข้อผิดพลาดที่กำหนดเองใน JavaScript ได้อย่างไร
ด้วยเหตุผลบางอย่างดูเหมือนว่าการมอบหมายให้สร้างไม่ทำงานในตัวอย่างต่อไปนี้: function NotImplementedError() { Error.apply(this, arguments); } NotImplementedError.prototype = new Error(); var nie = new NotImplementedError("some message"); console.log("The message is: '"+nie.message+"'") The message is: ''เล่นนี้จะช่วยให้ แนวคิดใดเกี่ยวกับสาเหตุหรือหากมีวิธีที่ดีกว่าในการสร้างErrorคลาสย่อยใหม่ มีปัญหากับapplying Errorconstructor ที่ฉันไม่รู้หรือไม่?

12
การจัดการข้อยกเว้นจากงาน Java ExecutorService
ฉันกำลังพยายามใช้ThreadPoolExecutorคลาสของ Java เพื่อทำงานหนักจำนวนมากด้วยจำนวนเธรดที่แน่นอน แต่ละงานมีหลายสถานที่ซึ่งอาจล้มเหลวเนื่องจากข้อยกเว้น ฉันได้ subclassed ThreadPoolExecutorและฉันได้แทนที่afterExecuteวิธีที่ควรจะให้ข้อยกเว้นที่ไม่ถูกตรวจพบในขณะที่ทำงาน อย่างไรก็ตามฉันไม่สามารถใช้งานได้ ตัวอย่างเช่น: public class ThreadPoolErrors extends ThreadPoolExecutor { public ThreadPoolErrors() { super( 1, // core threads 1, // max threads 1, // timeout TimeUnit.MINUTES, // timeout units new LinkedBlockingQueue<Runnable>() // work queue ); } protected void afterExecute(Runnable r, Throwable t) { super.afterExecute(r, t); …

18
จะเลือกข้อยกเว้นที่ทำเครื่องหมายและไม่เลือก
ใน Java (หรือภาษาอื่นที่มีข้อยกเว้นที่ตรวจสอบแล้ว) เมื่อสร้างคลาสยกเว้นของคุณเองคุณจะตัดสินใจได้อย่างไรว่าควรตรวจสอบหรือไม่เลือก สัญชาตญาณของฉันคือการพูดว่าจะมีการเรียกข้อยกเว้นที่ถูกตรวจสอบในกรณีที่ผู้โทรอาจสามารถกู้คืนได้อย่างมีประสิทธิผลในกรณีที่ข้อยกเว้นที่ไม่ได้ตรวจสอบจะมีมากขึ้นสำหรับกรณีที่ไม่สามารถกู้คืนได้

27
ไม่สามารถโหลดไฟล์หรือชุดประกอบ ... พารามิเตอร์ไม่ถูกต้อง
เมื่อเร็ว ๆ นี้ฉันพบข้อยกเว้นต่อไปนี้ที่โซลูชัน C #: ข้อผิดพลาด 2 ไม่สามารถโหลดไฟล์หรือชุดประกอบ 'Newtonsoft.Json, รุ่น = 3.5.0.0, วัฒนธรรม = เป็นกลาง, PublicKeyToken = b9a188c8922137c6' หรือการอ้างอิงอย่างใดอย่างหนึ่ง พารามิเตอร์ไม่ถูกต้อง (ข้อยกเว้นจาก HRESULT: 0x80070057 (E_INVALIDARG)) สิ่งนี้ไม่ได้ขึ้นอยู่กับรหัสของฉันหรือชื่อชุดประกอบ (เช่นNewtonsoft.Jsonในกรณีนี้) เมื่อฉันลบ dll นี้จากการแก้ปัญหาคอมไพเลอร์บอกเกี่ยวกับอีกในข้อยกเว้นเดียวกัน ดังนั้นฉันคิดว่าบางสิ่งบางอย่างจะถูกปิด / เปิดที่พีซีของฉัน :)


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