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

โครงสร้างภาษาการเขียนโปรแกรมออกแบบมาเพื่อจัดการข้อผิดพลาดที่ส่งสัญญาณโดยรหัสข้อผิดพลาดข้อยกเว้นหรือวิธีการเฉพาะภาษาอื่น ๆ

5
เปิดใช้งานการแสดงข้อผิดพลาดใน PHP ผ่าน htaccess เท่านั้น
ฉันกำลังทดสอบเว็บไซต์ออนไลน์ ขณะนี้ข้อผิดพลาดไม่ปรากฏขึ้น (แต่ฉันรู้ว่ามีอยู่) ฉันสามารถเข้าถึงได้เฉพาะ.htaccessไฟล์ ฉันจะสร้างข้อผิดพลาดทั้งหมดเพื่อแสดงโดยใช้.htaccessไฟล์ของฉันได้อย่างไร ฉันเพิ่มบรรทัดเหล่านี้ลงใน.htaccessไฟล์ของฉัน: php_flag display_startup_errors on php_flag display_errors on php_flag html_errors on และตอนนี้หน้าจะแสดง: ข้อผิดพลาดภายในเซิร์ฟเวอร์

6
การจัดการข้อผิดพลาดเฉพาะใน JavaScript (คิดว่ามีข้อยกเว้น)
คุณจะใช้ข้อผิดพลาดประเภทต่างๆอย่างไรเพื่อที่คุณจะสามารถจับข้อผิดพลาดที่เฉพาะเจาะจงและปล่อยให้คนอื่นพูดถึง .. ? วิธีหนึ่งในการบรรลุเป้าหมายนี้คือการปรับเปลี่ยนต้นแบบของErrorวัตถุ: Error.prototype.sender = ""; function throwSpecificError() { var e = new Error(); e.sender = "specific"; throw e; } ตรวจจับข้อผิดพลาดเฉพาะ: try { throwSpecificError(); } catch (e) { if (e.sender !== "specific") throw e; // handle specific error } พวกคุณมีทางเลือกอื่นหรือไม่?

5
หลายค่าในบริบทค่าเดียว
เนื่องจากข้อผิดพลาดในการจัดการใน Go ฉันมักจะจบลงด้วยฟังก์ชันหลายค่า จนถึงตอนนี้วิธีที่ฉันจัดการมันยุ่งมากและฉันกำลังมองหาแนวทางปฏิบัติที่ดีที่สุดในการเขียนโค้ดที่สะอาดกว่า สมมติว่าฉันมีฟังก์ชันต่อไปนี้: type Item struct { Value int Name string } func Get(value int) (Item, error) { // some code return item, nil } ฉันจะกำหนดตัวแปรใหม่ให้สวยitem.Valueหรูได้อย่างไร ก่อนที่จะแนะนำการจัดการข้อผิดพลาดฟังก์ชันของฉันเพิ่งกลับมาitemและฉันสามารถทำได้: val := Get(1).Value ตอนนี้ฉันทำสิ่งนี้: item, _ := Get(1) val := item.Value ไม่มีวิธีเข้าถึงตัวแปรที่ส่งคืนแรกโดยตรงหรือไม่?

6
ข้อผิดพลาดในการบันทึกใน ASP.NET MVC
ฉันกำลังใช้ log4net ในแอปพลิเคชัน ASP.NET MVC เพื่อบันทึกข้อยกเว้น วิธีที่ฉันทำคือให้คอนโทรลเลอร์ทั้งหมดของฉันสืบทอดมาจากคลาส BaseController ในเหตุการณ์ OnActionExecuting ของ BaseController ฉันบันทึกข้อยกเว้นใด ๆ ที่อาจเกิดขึ้น: protected override void OnActionExecuted(ActionExecutedContext filterContext) { // Log any exceptions ILog log = LogManager.GetLogger(filterContext.Controller.GetType()); if (filterContext.Exception != null) { log.Error("Unhandled exception: " + filterContext.Exception.Message + ". Stack trace: " + filterContext.Exception.StackTrace, filterContext.Exception); } } วิธีนี้ใช้งานได้ดีหากเกิดข้อยกเว้นที่ไม่สามารถจัดการได้ระหว่างการดำเนินการของคอนโทรลเลอร์ …


10
ASP.NET MVC จัดการข้อผิดพลาดแบบกำหนดเอง Application_Error Global.asax?
ฉันมีรหัสพื้นฐานเพื่อระบุข้อผิดพลาดในแอปพลิเคชัน MVC ของฉัน ขณะนี้อยู่ในโครงการของฉันฉันมีตัวควบคุมที่เรียกว่าErrorด้วยวิธีการดำเนินการHTTPError404(), และHTTPError500() พวกเขาทุกคนยอมรับพารามิเตอร์สตริงGeneral() errorการใช้หรือแก้ไขโค้ดด้านล่าง อะไรคือวิธีที่ดีที่สุด / เหมาะสมในการส่งข้อมูลไปยังตัวควบคุมข้อผิดพลาดเพื่อประมวลผล ฉันต้องการวิธีแก้ปัญหาที่แข็งแกร่งที่สุด protected void Application_Error(object sender, EventArgs e) { Exception exception = Server.GetLastError(); Response.Clear(); HttpException httpException = exception as HttpException; if (httpException != null) { RouteData routeData = new RouteData(); routeData.Values.Add("controller", "Error"); switch (httpException.GetHttpCode()) { case 404: // page not found …

8
วิธีคืนค่า 0 โดยหารด้วยศูนย์
ฉันกำลังพยายามหารองค์ประกอบอย่างชาญฉลาดใน python แต่ถ้าพบศูนย์ฉันต้องการให้ผลหารเป็นศูนย์ ตัวอย่างเช่น: array1 = np.array([0, 1, 2]) array2 = np.array([0, 1, 1]) array1 / array2 # should be np.array([0, 1, 2]) ฉันสามารถใช้ for-loop ผ่านข้อมูลของฉันได้ตลอดเวลา แต่เพื่อใช้ประโยชน์จากการเพิ่มประสิทธิภาพของ numpy จริงๆฉันต้องการให้ฟังก์ชันการหารคืนค่า 0 เมื่อหารด้วยข้อผิดพลาดเป็นศูนย์แทนที่จะละเว้นข้อผิดพลาด ดูเหมือนว่าnumpy.seterr ()ไม่สามารถคืนค่าได้หากไม่มีข้อผิดพลาด ใครมีข้อเสนอแนะอื่น ๆ เกี่ยวกับวิธีที่ฉันจะได้รับสิ่งที่ดีที่สุดในขณะที่ตั้งค่าการหารของตัวเองโดยการจัดการข้อผิดพลาดเป็นศูนย์?

1
ฉันต้อง "return" หลังจาก "throw" ใน JavaScript หรือไม่
ฉันกำลังโยนErrorวิธีการของฉันที่ฉันต้องการออกก่อนเวลาดังต่อไปนี้: // No route found if(null === nextRoute) { throw new Error('BAD_ROUTE'); } ฉันต้องใส่return;คำสั่งหลังจากฉันthrowหรือไม่? มันใช้ได้สำหรับฉันในตอนนี้ ถ้ามันฟุ่มเฟือยฉันไม่ควรใส่ แต่ฉันไม่แน่ใจว่าเบราว์เซอร์อื่นจะทำอะไรได้

11
วิธีแก้ข้อผิดพลาด LNK2019: สัญลักษณ์ภายนอกที่ไม่ได้รับการแก้ไข - ฟังก์ชัน
ฉันได้รับข้อผิดพลาดนี้ แต่ไม่รู้วิธีแก้ไข ฉันใช้ Visual Studio 2013 ฉันตั้งชื่อโซลูชันว่าMyProjectTest นี่คือโครงสร้างของโซลูชันการทดสอบของฉัน: - ฟังก์ชั่น h #ifndef MY_FUNCTION_H #define MY_FUNCTION_H int multiple(int x, int y); #endif -function.cpp #include "function.h" int multiple(int x, int y){ return x*y; } - main.cpp #include <iostream> #include <cstdlib> #include "function.h" using namespace std; int main(){ int a, b; cin >> …


4
การจับรหัสข้อผิดพลาดในเชลล์ไปป์
ขณะนี้ฉันมีสคริปต์ที่ทำบางอย่างเช่น ./a | ./b | ./c ฉันต้องการแก้ไขเพื่อที่ว่าถ้ามี a, b หรือ c ออกด้วยรหัสข้อผิดพลาดฉันพิมพ์ข้อความแสดงข้อผิดพลาดและหยุดแทนที่จะส่งผลลัพธ์ที่ไม่ดีไปข้างหน้า อะไรคือวิธีที่ง่ายที่สุด / สะอาดที่สุดในการทำเช่นนั้น?

8
การบันทึกข้อผิดพลาด JavaScript Clientside บนเซิร์ฟเวอร์ [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันใช้งานไซต์ ASP.NET ที่ฉันมีปัญหาในการค้นหาข้อผิดพลาด JavaScript บางอย่างด้วยการทดสอบด้วยตนเอง มีความเป็นไปได้หรือไม่ที่จะตรวจจับข้อผิดพลาด JavaScript ทั้งหมดบนไคลเอนต์ไซด์และบันทึกบนเซิร์ฟเวอร์เช่นใน EventLog (ผ่านทางเว็บไซต์หรืออะไรทำนองนั้น)

3
คุณจะให้โปรแกรม Golang พิมพ์หมายเลขบรรทัดของข้อผิดพลาดที่เพิ่งเรียกได้อย่างไร?
ฉันพยายามโยนข้อผิดพลาดในโปรแกรม Golang ของฉันด้วยlog.Fatalแต่log.Fatalไม่พิมพ์บรรทัดที่log.Fatalรันด้วย ไม่มีวิธีเข้าถึงหมายเลขบรรทัดที่เรียกว่า log Fatal? คือมีวิธีรับหมายเลขบรรทัดเมื่อเกิดข้อผิดพลาดหรือไม่? ฉันพยายามที่จะ google แต่ไม่แน่ใจว่าจะทำอย่างไร สิ่งที่ดีที่สุดที่ฉันจะได้รับคือการพิมพ์สแต็กแทร็กซึ่งฉันคิดว่าดี แต่อาจจะมากเกินไป ฉันไม่ต้องการเขียนdebug.PrintStack()ทุกครั้งที่ฉันต้องการหมายเลขบรรทัดฉันรู้สึกประหลาดใจที่ไม่มีฟังก์ชันในตัวสำหรับสิ่งนี้log.FatalStackTrace()หรือสิ่งที่ไม่ใช่เครื่องแต่งกาย นอกจากนี้เหตุผลที่ฉันไม่ต้องการสร้างสิ่งที่จัดการแก้ไขข้อบกพร่อง / ข้อผิดพลาดของตัวเองก็เพราะฉันไม่ต้องการให้คนอื่นต้องเรียนรู้วิธีใช้รหัสการจัดการเครื่องแต่งกายพิเศษของฉัน ฉันแค่ต้องการมาตรฐานที่ผู้คนสามารถอ่านรหัสของฉันในภายหลังและเป็นเหมือน "อ่าตกลงมันเกิดข้อผิดพลาดและทำ X ... " ยิ่งมีคนเรียนรู้เกี่ยวกับโค้ดของฉันน้อยเท่าไหร่ :)

5
การปิดใช้งานมาตรฐานที่เข้มงวดใน PHP 5.4
ฉันกำลังใช้งานไซต์บน php 5.4 ก่อนหน้านี้ฉันใช้งานไซต์ของฉันบน 5.3.8 น่าเสียดายที่ php 5.4 รวมE_ALLและE_STRICTซึ่งหมายความว่าการตั้งค่าก่อนหน้าของฉันสำหรับerror_reportingใช้งานไม่ได้ในขณะนี้ ค่าก่อนหน้าของฉันคือE_ALL & ~E_NOTICE & ~E_STRICTฉันควรเปิดใช้ทีละค่าหรือไม่? ฉันมีข้อผิดพลาดมากเกินไปและไฟล์มีโค้ดมากเกินไปสำหรับฉันที่จะแก้ไข

10
ฉันจะจับ 404 ได้อย่างไร
ฉันมีรหัสต่อไปนี้: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "HEAD"; request.Credentials = MyCredentialCache; try { request.GetResponse(); } catch { } ฉันจะตรวจจับข้อผิดพลาด 404 ที่เฉพาะเจาะจงได้อย่างไร WebExceptionStatus.ProtocolError สามารถตรวจพบได้เฉพาะข้อผิดพลาดที่เกิดขึ้น แต่ไม่ได้ระบุรหัสที่แน่นอนของข้อผิดพลาด ตัวอย่างเช่น: catch (WebException ex) { if (ex.Status != WebExceptionStatus.ProtocolError) { throw ex; } } มีประโยชน์ไม่เพียงพอ ... ข้อยกเว้นโปรโตคอลอาจเป็น 401, 503, 403 อะไรก็ได้จริงๆ

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