ในโปรแกรม Java แบบมัลติเธรด เธรดทั้งหมดไม่ได้รับอนุญาตให้ส่งข้อยกเว้นที่ตรวจสอบที่ไม่ถูกตรวจจับ ซึ่งหมายความว่าแต่ละเธรดจำเป็นต้องจัดการกับข้อยกเว้นที่ตรวจสอบของตัวเอง สิ่งนี้ถูกจำกัดโดยการประกาศเมธอด java.lang.Runnable.run() (เนื่องจากไม่มีส่วนข้อยกเว้นการโยนในการประกาศเมธอดนี้) อย่างไรก็ตาม เธรดอาจยังคงโยนข้อยกเว้นที่ไม่ได้ตรวจสอบ เมื่อมีการโยนข้อยกเว้นดังกล่าว เธรดจะยุติลง และเธรดหลักและเธรดอื่น ๆ จะไม่ได้รับผลกระทบเลย และข้อยกเว้นที่เกิดจากเธรดบางตัวจะไม่ถูกรับรู้ที่ ทั้งหมด (ยังบอกว่าไม่สามารถตรวจจับข้อยกเว้นนี้ได้เลย) การออกแบบ JVM นี้มาจากแนวคิด: "เธรดถูกดำเนินการอย่างอิสระจากโค้ดแฟรกเมนต์ ปัญหาของเธรดควรได้รับการแก้ไขโดยเธรดเอง แทนที่จะมอบหมายให้กับภายนอก" ตามแนวคิดการออกแบบนี้ ใน Java ข้อยกเว้นของเมธอดเธรด (ไม่ว่าจะเลือกหรือไม่ก็ตาม) หรือข้อยกเว้นที่ไม่ได้ตรวจสอบ) ควรลองตรวจจับและจัดการภายในขอบเขตโค้ดเธรด (ภายในวิธีการเรียกใช้)
แต่หากเธรดไม่พยายามจับข้อยกเว้นที่ไม่ได้ตรวจสอบด้วยตัวเอง และเราต้องการจับและจัดการข้อยกเว้นนี้นอกขอบเขตโค้ดเธรด (นอกวิธีการรัน) Java จะจัดเตรียมวิธีให้เราในการจับข้อยกเว้นเมื่อมีข้อยกเว้นเกิดขึ้น ภายในเธรด กลไกการเรียกกลับสำหรับการจัดการข้อยกเว้นนอกขอบเขตโค้ดเธรดคือเมธอด setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh) ที่จัดเตรียมโดยวัตถุ Thread
ด้วยการตั้งค่า UncaughtExceptionHandler สำหรับเธรดโดยใช้วิธีนี้ คุณสามารถมั่นใจได้ว่าเมื่อมีข้อยกเว้นเกิดขึ้นในเธรด ข้อยกเว้นสามารถจัดการได้โดยการเรียกกลับเมธอด uncaughtException(Thread t, Throwable e) สาธารณะของอินเทอร์เฟซ UncaughtExceptionHandler หรือวัตถุประสงค์ของสิ่งนี้คือสามารถใช้ในเธรดได้ นอกขอบเขตโค้ด (นอกเมธอด run() ของเธรด) มีที่สำหรับจัดการข้อยกเว้นที่ไม่ถูกตรวจจับ แต่สิ่งที่ควรชัดเจนเป็นพิเศษก็คือ แม้ว่าข้อยกเว้นจะได้รับการจัดการในวิธีการโทรกลับ แต่วิธีการโทรกลับยังคงอยู่ในเธรดที่สร้างข้อยกเว้นเมื่อมีการดำเนินการ!
เมื่อเปรียบเทียบกับวิธีการข้างต้น มีวิธีการเขียนโปรแกรมอื่นที่สามารถใช้สำหรับการอ้างอิงได้ นั่นคือ บางครั้งผู้เรียกเธรดหลักอาจเพียงต้องการทราบว่ามีข้อยกเว้นใดเกิดขึ้นระหว่างการดำเนินการของเธรดย่อย แต่อาจไม่จำเป็นเสมอไป จัดการหรือจัดการทันที จากนั้น วิธีการเริ่มต้นเธรดย่อยสามารถรวบรวมอินสแตนซ์ข้อยกเว้นที่ถูกโยนโดยเธรดย่อยและส่งคืนให้กับผู้เรียกเป็นรายการข้อยกเว้น และผู้เรียกสามารถตัดสินใจได้ว่าควรตอบสนองอย่างไรตามสถานการณ์ที่ผิดปกติ . อย่างไรก็ตาม สิ่งสำคัญคือต้องทราบว่าเธรดย่อยได้สิ้นสุดลงแล้วในขณะนี้