ฉันมีวิธีการอินเทอร์เฟซที่ระบุไว้ในเอกสารมันจะโยนประเภทของข้อยกเว้นเฉพาะ การใช้วิธีการนั้นใช้สิ่งที่ส่งข้อยกเว้น มีการตรวจสอบข้อยกเว้นภายในและข้อยกเว้นที่ประกาศโดยสัญญาส่วนต่อประสาน นี่คือตัวอย่างรหัสเล็กน้อยที่จะอธิบายได้ดีขึ้น มันเขียนใน PHP แต่ค่อนข้างง่ายที่จะติดตาม
// in the interface
/**
* @return This method returns a doohickey to use when you need to foo
* @throws DoohickeyDisasterException
*/
public function getThatDoohickey();
// in the implementation
public function getThatDoohickey() {
try {
$SomethingInTheClass->doSomethingThatThrowsAnException();
} catch (Exception $Exc) {
throw new DoohickeyDisasterException('Message about doohickey failure');
}
// other code may return the doohickey
}
ฉันใช้วิธีนี้เพื่อป้องกันไม่ให้สิ่งที่เป็นนามธรรมรั่วไหล
คำถามของฉันคือ: จะผ่านข้อยกเว้นภายในที่โยนเป็นข้อยกเว้นก่อนหน้านี้จะรั่วนามธรรม? หากไม่เป็นเช่นนั้นจะเหมาะที่จะใช้ข้อความข้อยกเว้นก่อนหน้านี้ซ้ำอีกครั้งหรือไม่ หากเป็นสิ่งที่ทำให้เกิดการรั่วซึมคุณสามารถให้คำแนะนำเกี่ยวกับสาเหตุที่คุณคิดว่าเป็นเช่นนั้น
เพียงชี้แจงคำถามของฉันจะเกี่ยวข้องกับการเปลี่ยนเป็นบรรทัดของรหัสต่อไปนี้
throw new DoohickeyDisasterException($Exc->getMessage(), null, $Exc);
file_not_found
file_not_found_exception
ข้อยกเว้นไม่ควรระบุเฉพาะไลบรารี