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

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

30
ในที่สุดบล็อกจะถูกเรียกใช้งานใน Java เสมอหรือไม่
เมื่อพิจารณาถึงรหัสนี้ฉันสามารถมั่นใจได้อย่างแน่นอนว่าfinallyบล็อกจะดำเนินการเสมอไม่ว่าsomething()จะเกิดอะไรขึ้น try { something(); return success; } catch (Exception e) { return failure; } finally { System.out.println("I don't know if this will get printed out"); }

30
ฉันจะรับข้อผิดพลาดของ PHP ที่จะแสดงได้อย่างไร
ผมได้ตรวจสอบไฟล์ INI ของฉัน PHP ( php.ini) และมีการตั้งค่าและการรายงานข้อผิดพลาดคือdisplay_errors E_ALLฉันรีสตาร์ทเว็บเซิร์ฟเวอร์ Apache ของฉันแล้ว ฉันวางบรรทัดเหล่านี้ไว้ที่ด้านบนสุดของสคริปต์แล้วและมันก็ไม่ได้เกิดข้อผิดพลาดในการแยกวิเคราะห์แบบง่ายๆ ตัวอย่างเช่นผมประกาศตัวแปรด้วยและฉันจะไม่ปิดงบ"$" ";"แต่สคริปต์ของฉันทั้งหมดแสดงหน้าเปล่าเกี่ยวกับข้อผิดพลาดเหล่านี้ แต่ฉันต้องการเห็นข้อผิดพลาดจริง ๆในผลลัพธ์ของเบราว์เซอร์ error_reporting(E_ALL); ini_set('display_errors', 1); สิ่งที่ต้องทำคืออะไร?

17
ฉันจะแยกข้อความ "การอนุญาตที่ถูกปฏิเสธ" ทั้งหมดออกจาก "ค้นหา" ได้อย่างไร?
ฉันต้องการซ่อนข้อความที่ถูกปฏิเสธสิทธิ์ทั้งหมดจาก: find . > files_and_folders ฉันกำลังทดลองเมื่อข้อความดังกล่าวเกิดขึ้น ฉันต้องรวบรวมโฟลเดอร์และไฟล์ทั้งหมดซึ่งมันไม่ได้เกิดขึ้น เป็นไปได้หรือไม่ที่จะนำระดับการอนุญาตไปยังfiles_and_foldersไฟล์ ฉันจะซ่อนข้อผิดพลาดพร้อมกันได้อย่างไร


30
ฉันจะรับข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์ใน PHP ได้อย่างไร
บ่อยครั้งที่ฉันจะพยายามเรียกใช้สคริปต์ PHP และกลับไปที่หน้าจอว่างเปล่า ไม่มีข้อความแสดงข้อผิดพลาด; เพียงแค่หน้าจอที่ว่างเปล่า สาเหตุอาจเป็นข้อผิดพลาดทางไวยากรณ์อย่างง่าย (วงเล็บไม่ถูกต้องเครื่องหมายอัฒภาคหายไป) หรือการเรียกใช้ฟังก์ชันที่ล้มเหลวหรืออย่างอื่น มันยากมากที่จะคิดออกว่าเกิดอะไรขึ้น ฉันสิ้นสุดความคิดเห็นรหัสป้อนคำสั่ง "echo" ทุกที่ ฯลฯ พยายามแคบลงปัญหา แต่ต้องมีวิธีที่ดีกว่าใช่ไหม? มีวิธีที่จะทำให้ PHP สร้างข้อความแสดงข้อผิดพลาดที่มีประโยชน์อย่าง Java หรือไม่?

7
เริ่มต้นช่วยเหลือและมั่นใจใน Ruby?
ฉันเพิ่งเริ่มเขียนโปรแกรมใน Ruby และฉันกำลังดูการจัดการข้อยกเว้น ฉันสงสัยว่าensureทับทิมนั้นเทียบเท่ากับfinallyใน C # หรือไม่ ฉันควรจะมี: file = File.open("myFile.txt", "w") begin file << "#{content} \n" rescue #handle the error here ensure file.close unless file.nil? end หรือฉันควรทำเช่นนี้? #store the file file = File.open("myFile.txt", "w") begin file << "#{content} \n" file.close rescue #handle the error here ensure file.close unless file.nil? …

30
วิธีการดึงข้อมูลควรส่งคืน 'null' หรือส่งข้อยกเว้นเมื่อไม่สามารถสร้างค่าส่งคืนได้หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันมีวิธีการที่ควรส่งคืนวัตถุหากพบ หากไม่พบฉันควร: ส่งคืน null โยนข้อยกเว้น อื่น ๆ

15
ไพพ์เอาต์พุตและสถานะการดักจับใน Bash
ฉันต้องการรันคำสั่งที่รันเป็นเวลานานใน Bash และทั้งคู่ก็จับสถานะทางออกของมันและเอาท์พุทของมันที ดังนั้นฉันทำสิ่งนี้: command | tee out.txt ST=$? ปัญหาคือตัวแปร ST รวบรวมสถานะการออกของteeและไม่ใช่คำสั่ง ฉันจะแก้ปัญหานี้ได้อย่างไร โปรดทราบว่าคำสั่งนั้นใช้เวลานานและการเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์เพื่อดูในภายหลังไม่ใช่วิธีแก้ปัญหาที่ดีสำหรับฉัน

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

21
PHP จัดเก็บบันทึกข้อผิดพลาดที่ไหน (php5, apache, fastcgi, cpanel)
ฉันอยู่ในพื้นที่สาธารณะและมี Cpanel, Apache, PHP ดำเนินการโดย fastcgi PHP จัดเก็บบันทึกข้อผิดพลาดที่ไหน มีวิธีอื่นที่ฉันสามารถค้นหาบันทึกข้อผิดพลาดในสภาพแวดล้อมการโฮสต์ที่ใช้ร่วมกันแทนที่จะต้องผ่านโครงสร้างเว็บไซต์ทั้งหมดเพื่อค้นหาไฟล์ error_log หรือไม่ ฉันสามารถเข้าถึงphp.ini(ฉันใช้ PHP เวอร์ชัน 5.2.16)

29
วิธีที่เร็วที่สุดในการตรวจสอบว่าสตริงคือ JSON ใน PHP?
ฉันต้องการวิธีการตรวจสอบอย่างรวดเร็วจริงๆว่าสตริงเป็น JSON หรือไม่ ฉันรู้สึกว่านี่ไม่ใช่วิธีที่ดีที่สุด: function isJson($string) { return ((is_string($string) && (is_object(json_decode($string)) || is_array(json_decode($string))))) ? true : false; } ผู้ที่ชื่นชอบการปฏิบัติงานที่นั่นต้องการปรับปรุงวิธีนี้หรือไม่?

8
อะไรคือข้อแตกต่างระหว่าง“ โยนข้อผิดพลาดใหม่” และ“ โยนข้อผิดพลาดบางอย่าง”
ฉันต้องการที่จะเขียนตัวจัดการข้อผิดพลาดทั่วไปซึ่งจะจับข้อผิดพลาดที่กำหนดเองที่เกิดขึ้นกับจุดประสงค์ที่โค้ดใด ๆ เมื่อฉันไม่throw new Error('sample')ชอบในรหัสต่อไปนี้ try { throw new Error({'hehe':'haha'}); // throw new Error('hehe'); } catch(e) { alert(e); console.log(e); } เข้าสู่ระบบแสดงใน Firefox เป็นError: [object Object]และฉันไม่สามารถแยกวัตถุ สำหรับบันทึกที่สองthrowแสดงเป็น:Error: hehe ในขณะที่ฉันทำ try { throw ({'hehe':'haha'}); } catch(e) { alert(e); console.log(e); } คอนโซลแสดงเป็น: Object { hehe="haha"}ซึ่งฉันสามารถเข้าถึงคุณสมบัติข้อผิดพลาด อะไรคือความแตกต่าง? ความแตกต่างที่เห็นในรหัสคืออะไร? เช่นเดียวกับสตริงจะถูกส่งผ่านเป็นสตริงและวัตถุเป็นวัตถุ แต่ไวยากรณ์จะแตกต่างกันอย่างไร ฉันไม่ได้สำรวจวัตถุข้อผิดพลาดในการขว้างปา ... ฉันทำแค่โยนสาย มีวิธีอื่นนอกเหนือจากสองวิธีที่กล่าวมาข้างต้นหรือไม่?

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

11
ฉันสามารถลอง / จับคำเตือนได้หรือไม่?
ฉันต้องการที่จะจับคำเตือนบางอย่างที่ถูกโยนออกมาจากฟังก์ชั่นพื้นเมือง php แล้วจัดการพวกเขา โดยเฉพาะ: array dns_get_record ( string $hostname [, int $type= DNS_ANY [, array &$authns [, array &$addtl ]]] ) มันจะส่งคำเตือนเมื่อแบบสอบถาม DNS ล้มเหลว try/ catchไม่ทำงานเนื่องจากคำเตือนไม่ใช่ข้อยกเว้น ตอนนี้ฉันมี 2 ตัวเลือก: set_error_handler ดูเหมือนว่า overkill เพราะฉันต้องใช้มันเพื่อกรองคำเตือนทุกอย่างในหน้า (นี่เป็นเรื่องจริงหรือ?); ปรับการรายงานข้อผิดพลาด / การแสดงผลเพื่อให้คำเตือนเหล่านี้ไม่ได้รับการสะท้อนไปยังหน้าจอจากนั้นตรวจสอบค่าตอบแทน; ถ้าเป็นเช่นนั้นจะfalseไม่พบระเบียนสำหรับชื่อโฮสต์ การปฏิบัติที่ดีที่สุดที่นี่คืออะไร

23
ฉันจะดีบัก“ ข้อผิดพลาด: วางไข่ ENOENT” บน node.js ได้อย่างไร
เมื่อฉันได้รับข้อผิดพลาดต่อไปนี้: events.js:72 throw er; // Unhandled 'error' event ^ Error: spawn ENOENT at errnoException (child_process.js:1000:11) at Process.ChildProcess._handle.onexit (child_process.js:791:34) ฉันสามารถทำตามขั้นตอนใดเพื่อแก้ไขได้ ผู้แต่งบันทึก : ปัญหามากมายกับข้อผิดพลาดนี้สนับสนุนให้ฉันโพสต์คำถามนี้สำหรับการอ้างอิงในอนาคต คำถามที่เกี่ยวข้อง: ใช้ฟังก์ชันวางไข่กับ NODE_ENV = การผลิต node.js child_process.spawn ข้อผิดพลาด ENOENT - ภายใต้ supervisord วางไข่ข้อผิดพลาด ENOENT node.js /programming/27603713/nodejs-spawn-enoent-error-on-travis-calling-global-npm-package โหนด JS - child_process วางไข่ ('ติดตั้ง npm') ใน Grunt งานผลลัพธ์ในข้อผิดพลาด ENOENT การเรียกใช้งาน …

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