Đây là tình huống. Tôi muốn tất cả các ngoại lệ trong doStuff() để bong bóng thông qua mã để chúng được xử lý ở mức cao hơn.Ngoại lệ reraising ruby w/đối số chuỗi bổ sung
Tôi cũng muốn ghi lại mức độ thường xuyên trường hợp ngoại lệ nào đang xảy ra trong doStuff() ở mức cao hơn là tốt, và hiện đang làm điều này:
begin
doStuff()
rescue Exception =>
raise e, "specific error to log in a db"
doStuff đang ném hàng chục trường hợp ngoại lệ, và tôi muốn nắm bắt từng sự kiện này để đưa vào db. Có một doStuff2(), cũng có thể ném các lệnh giống hệt nhau và tôi muốn biết chúng xuất phát từ chức năng nào.
Thêm chuỗi bổ sung, dường như thay đổi ngoại lệ, và tôi mất tất cả thông tin định dạng và theo dõi tốt đẹp mà ngoại lệ ban đầu có.
Bất kỳ đề xuất nào về cách tôi có thể làm lại ngoại lệ ban đầu, nhưng cũng theo dõi tất cả các ngoại lệ xảy ra trong doStuff()?
doStuff() chỉ là giả mã, xin lỗi. Vấn đề là tôi không thể đăng nhập ngoại lệ ở đây. Việc khai thác gỗ phải xảy ra ở mức cao hơn. Ứng dụng này là 'câm' và không biết bất cứ điều gì về cơ sở dữ liệu hoặc đăng nhập. Tôi biết tôi không thể tăng 2 ngoại lệ cùng một lúc, nhưng điều này sẽ giải quyết được vấn đề của tôi. Một trong số họ sẽ bị bắt và đăng nhập, và một người khác sẽ vẫn bị bong bóng trong mã. –