คอมพิวเตอร์การเขียนโปรแกรม

Java: ข้อยกเว้นและการจัดการของพวกเขา

โปรแกรมใด ๆ จะดำเนินการเฉพาะในกรณีที่เสถียรซอร์สโค้ดบั๊กและมีเงื่อนไขที่สามารถทำให้เกิดสถานการณ์ที่ไม่คาดฝันไม่มี กระบวนการของการจับความล้มเหลวเป็นไปได้ที่จะดำเนินการบนเวทีการเขียนโปรแกรม การทำเช่นนี้นักพัฒนาที่จะนำเข้าบัญชีทั้งหมดที่คาดว่าผลและความพยายามที่จะ จำกัด ผลกระทบของข้อผิดพลาดเพื่อที่จะไม่สามารถแทรกแซงการทำงานของโปรแกรมหรือนำไปสู่การล่มสลายของ

เมื่อคุณอาจจำเป็นต้องจัดการข้อยกเว้น

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

การจัดการข้อยกเว้น Java

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

ใน Java นี้จะเรียกเก็บโดยคอมไพเลอร์ที่จะจับข้อยกเว้นดังนั้นปัญหาที่เกิดขึ้นโดยทั่วไปเป็นที่รู้จักและมีรูปแบบการออกกำลังกายมาตรฐาน

ยกเว้นทั่วไป

ตัวอย่างที่ง่ายที่สุดในการที่คุณจะได้รับการยกเว้น - ส่วนนี้ แม้จะมีความเรียบง่ายในแง่เป็น divider อาจจะเป็นศูนย์ซึ่งจะส่งผลให้เกิดข้อผิดพลาด ดีถ้ามันเป็นไปได้ที่จะคาดการณ์การเกิดขึ้นในอดีตและป้องกันไม่ให้ แต่ตัวเลือกนี้ไม่สามารถใช้ได้ตลอดเวลาดังนั้นการจับข้อยกเว้นควรจะจัดโดยตรงในกรณีของ "หารด้วยศูนย์"

กลไก Java เพื่อสกัดกั้นข้อผิดพลาดในการประมวลผลมีลักษณะเช่นนี้

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

ตัวอย่างที่ง่ายที่สุดในการสร้างข้อผิดพลาดอาจมีลักษณะเช่นนี้

ถ้า (โมฆะ ==)

โยน NullPointerException ใหม่ ();

นี่ตัวแปรมีการตรวจสอบในการเริ่มต้นคือ ไม่ได้ว่าการอ้างอิงไปยังวัตถุ null หากสถานการณ์เช่นนี้ได้เกิดขึ้นและความจำเป็นในการจัดการพิเศษ, ยกเว้นจะโยนโดยโยน NullPointerException ใหม่ ()

รายละเอียดบางอย่างเกี่ยวกับคำหลัก

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

  • ความพยายาม คำหลักนี้ พบแล้วและมันหมายถึงการเปลี่ยนแปลงในส่วนของโค้ดที่สามารถโยนข้อยกเว้นได้ บล็อกวงเล็บ จำกัด {}
  • จับ มันดักชนิดยกเว้นที่ต้องการและจัดการกับมันอย่างเหมาะสม
  • ในที่สุด คำหลักนี้เป็นตัวเลือกและถูกนำมาใช้ในการดำเนินการชิ้นหนึ่งของรหัสซึ่งเป็นสิ่งจำเป็นอย่างไรก็ตามแม้ว่าไม่มีข้อยกเว้นไม่ได้ถูกจับ ที่เพิ่มเข้ามาโดยตรงหลังจากลองบล็อก
  • โยน - ช่วยให้คุณสามารถสร้างข้อยกเว้น Java ได้จากทุกที่
  • พ่น - คำหลักที่วางอยู่ในลายเซ็นของวิธีการที่ ก็หมายความว่ารหัสต่อไปนี้สามารถโยนข้อยกเว้นชนิด Java นี้ เครื่องหมายนี้ทำหน้าที่เป็นสัญญาณให้กับนักพัฒนาที่จะต้องทนอยู่ในใจ - วิธีการที่ไม่สามารถทำงานได้ตามที่คาดหวังของเขา

จับกับลอง

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

รหัส Java เป็นห่อลองบล็อกพิเศษภายในซึ่งอาจจะเป็นข้อยกเว้น ดังนั้นเขาวางสถานการณ์ที่ไม่คาดคิดหลายอย่างที่จะได้รับการติดอยู่ในสถานที่เดียวกันไม่รหัส raspolzayas

รหัสทั่วไปมากที่สุดไปยังหน่วยประมวลผลเป็นดังนี้:

try {

// นี่คือรหัสบางอย่างที่อาจสร้างข้อยกเว้นคือ

} catch (Tip_isklyucheniya_1 identifikator_1) {

// ที่นี่มีการจัดการข้อยกเว้นตามประเภทและเงื่อนไขของตน

} catch (Tip_isklyucheniya_2 identifikator_2) {

// ที่นี่มีการจัดการข้อยกเว้นตามประเภทและเงื่อนไขของตน

}

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

ในที่สุด

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

พล็อตนี้นำเสนอการจับบล็อกหลายคิดค้นวิธีการจับข้อยกเว้น ตัวอย่างเช่นรหัสที่มีอยู่ในลองสร้างสถานการณ์ที่ไม่คาดคิดเช่นเย็น จากนั้นคอนโซลจะแสดงการแสดงออก«จับเย็น!»และ«คือว่าสิ่งที่ให้กำลังใจเกี่ยวกับ?» นั่นคือบล็อกในที่สุดก็จะถูกดำเนินการในกรณีใด ๆ

ในความเป็นจริงวิธีการหลีกเลี่ยงวิกฤติในที่สุดก็มี มันจะเชื่อมต่อกับความสำเร็จของเครื่องเสมือน ค้นหาวิธีการที่จะใช้มันก็เป็นไปได้ในการเปิดช่องว่างอินเทอร์เน็ต

คำหลักโยน

โยนสร้างข้อยกเว้น ไวยากรณ์มันเป็นดังนี้:

โยน NewException ใหม่ ();

มีการสร้างข้อยกเว้นใหม่ประเภท NewException (ที่) เป็นชนิดที่สามารถนำมาใช้รวมอยู่ในมาตรฐาน Java เรียนห้องสมุดและก่อนหน้านี้ที่กำหนดโดยนักพัฒนาของการผลิตของตัวเอง

การออกแบบนี้เป็นส่วนหนึ่งของรายละเอียดของวิธีการใด ๆ ซึ่งการโทรแล้วควรจะเกิดขึ้นภายในบล็อกลองในการสั่งซื้อเพื่อให้สามารถที่จะสกัดกั้นมัน

คำที่ใช้พ่น

เกิดอะไรขึ้นถ้าในขั้นตอนของการพัฒนาของสถานการณ์ที่วิธีการที่สามารถโยนยกเว้น แต่ไม่สามารถที่จะจัดการอย่างถูกต้อง ด้วยเหตุนี้ในลายเซ็นวิธีการระบุคำว่าพ่นและชนิดของข้อยกเว้นที่เป็นไปได้

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

พยายามทำให้ทรัพยากร

รุ่น Java 7 นักพัฒนาได้รวมนวัตกรรมที่สำคัญเช่นลองบล็อกการรักษาด้วยทรัพยากร

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

การเรียนของตัวเองยกเว้น Java

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

วิธีที่ง่ายที่สุดในการสร้าง - เพื่อสืบทอดจากที่เหมาะสมที่สุดกับบริบทวัตถุ

มีเกิดขึ้นจะได้รับมรดกจากข้อยกเว้นชั้นที่ใช้ในการกำหนดข้อยกเว้นของคุณเอง ใน MyException มีสองก่อสร้าง - เริ่มต้นที่สอง - มีอาร์กิวเมนต์ประเภทผงชูรสสตริง

จากนั้นในฉวิธีการสอนในชั้นเรียน FullConstructors ประชาชนดำเนินการซึ่งมีลายเซ็นพ่น MyException คำหลักนี้หมายความว่าฉสามารถโยนเช่นยกเว้น Java MyException นอกจากนี้ในร่างกายวิธีการผลิตการส่งออกข้อมูลข้อความไปยังคอนโซลตัวเองและ MyException รุ่นที่เกิดขึ้นจริงโดยโยน

วิธีที่สองคือแตกต่างจากคนแรกที่ว่าเมื่อคุณสร้างข้อยกเว้นก็จะถูกส่งผ่านพารามิเตอร์สตริงซึ่งจะสะท้อนให้เห็นในคอนโซลที่จับ ในหลักเป็นที่ชัดเจนว่า f () และ g () จะอยู่ในการตรวจสอบและลองจับคำหลักกำหนดค่าให้จับ MyException ผลของการประมวลผลคือการแสดงข้อผิดพลาดไปยังคอนโซล:

ดังนั้นมันก็จะเพิ่มข้อยกเว้น Java ด้วยมือของเขาเอง

ข้อยกเว้นสถาปัตยกรรม

เช่นเดียวกับวัตถุทั้งหมดใน Java ข้อยกเว้นได้รับมาและยังมีโครงสร้างแบบลำดับชั้น องค์ประกอบรากของข้อผิดพลาดทั้งหมดโยนในการเขียนโปรแกรมภาษานี้เป็นชั้น java.lang.Throwable ที่สืบทอดมาจากเขาสองชนิด - ข้อผิดพลาดและข้อยกเว้น

ข้อผิดพลาด - สัญญาณข้อผิดพลาดที่สำคัญและเป็นข้อยกเว้น Java ไม่ถูกตรวจสอบ การสกัดกั้นและการประมวลผลข้อมูลดังกล่าวในกรณีส่วนใหญ่เกิดขึ้นในขั้นตอนการออกแบบและไม่อยู่ในความต้องการของการแนะนำในรหัสโปรแกรมสุดท้าย

ชั้นใช้กันมากที่สุดสำหรับการสร้างและการวิเคราะห์ข้อยกเว้นเป็นข้อยกเว้น ซึ่งในที่สุดก็จะแบ่งออกเป็นหลายสาขารวมทั้ง RuntimeException โดยมีข้อยกเว้น RuntimeException รันไทม์ที่เป็นที่เกิดขึ้นในช่วงโปรแกรม ทุกชั้นเรียนมาจากมันพิสูจน์ไม่ได้

มักจะมีข้อยกเว้น

ในข้อยกเว้น Java, รายการที่จะนำเสนอดังต่อไปนี้จะถูกใช้บ่อยที่สุดดังนั้นคุณจึงควรอธิบายแต่ละของพวกเขาในรายละเอียด:

  • ArithmeticException เหล่านี้รวมถึงข้อผิดพลาดที่เกี่ยวข้องกับการดำเนินการทางคณิตศาสตร์ เห็นได้ชัดมากที่สุดเช่น - การหารด้วยศูนย์
  • ArrayIndexOutOfBoundsException - อุทธรณ์ไปยังหมายเลของค์ประกอบอาร์เรย์ที่เกินผลรวมของความยาวของมัน
  • ArrayStoreException - ความพยายามที่จะกำหนดประเภทองค์ประกอบเข้ากันไม่ได้ของอาร์เรย์
  • ClassCastException - ความพยายามที่จะนำความผิดประเภทหนึ่งไปยังอีก
  • IllegalArgumentException - ใช้อาร์กิวเมนต์ไม่ถูกต้องในวิธีการเรียก
  • NegativeArraySizeException - ข้อยกเว้นเมื่อคุณสร้างอาร์เรย์ขนาดเชิงลบ
  • NullPointerException - วัตถุประสงค์ของการอ้างอิงให้เป็นโมฆะ
  • NumberFormatException - เกิดขึ้นเมื่อมีการแปลงสตริงผิดที่จะจำนวนเต็ม
  • UnsupportedOperationException - การดำเนินการไม่ได้รับการสนับสนุน

ตัวอย่างเหล่านี้แสดงถึงประเภทของข้อยกเว้น Java เกกมะเหรก แต่เพื่อให้มีลักษณะการตรวจสอบ:

  • ไม่พบชั้น - ClassNotFoundException
  • IllegalAcccessException - จำกัด การเข้าถึงในชั้นเรียน
  • InterruptedException - การหยุดชะงักของการไหล
  • NoSuchFieldException - ไม่มีฟิลด์ที่จำเป็น

การตีความข้อยกเว้น

การพูดของข้อยกเว้นที่พบบ่อยควรจะตั้งข้อสังเกตว่าการตีความของพวกเขาในการออกแบบที่สามารถรับรู้อย่างไม่ถูกต้อง ถัดไปเป็นรายการสั้น ๆ ที่อธิบายในรายละเอียดเพิ่มเติมที่อาจจะมีสถานการณ์ที่ไม่คาดคิด

NullPointerException กรณีแรกมากเมื่อมีข้อยกเว้นคือการดึงดูดการอ้างอิงไปยังวัตถุที่เท่ากับเป็นโมฆะ นอกจากนี้ยังขยายไปถึงวิธีการเช่นชั้นเป็นศูนย์ NullPointerException อาจจะโยนในกรณีของการได้รับความยาวเท่ากับอาร์เรย์โมฆะ เพื่อหลีกเลี่ยงสถานการณ์ดังกล่าวจะตรวจสอบเว็บไซต์บนโมฆะ

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

ผลการวิจัย

การจัดการข้อยกเว้นชวา - สภาพแวดล้อมเครื่องมือที่มีประสิทธิภาพซึ่งช่วยอำนวยความสะดวกในการทำงานของโปรแกรมและช่วยให้เขาสร้างที่สะอาดและปราศจากข้อผิดพลาดรหัส เกี่ยวกับวิธีการได้อย่างราบรื่นและการประยุกต์ใช้การทำงานที่มั่นคงขึ้นอยู่กับสถานะและชื่อเสียงของนักพัฒนา

แน่นอนในโปรแกรมที่ง่ายมากขึ้นหรือน้อยลงในการติดตามสถานการณ์ที่ผิดปกติได้ง่ายขึ้นมาก แต่ในคอมเพล็กซ์อัตโนมัติขนาดใหญ่ไม่กี่แสนเส้นมันจะเป็นไปได้เป็นผลมาจากการทดสอบในระยะยาวและการแก้จุดบกพร่อง

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 th.delachieve.com. Theme powered by WordPress.