Tôi có một lớp với số phương thức và muốn có một trình xử lý ngoại lệ cho tất cả chúng. Có rất nhiều các phương pháp này và chúng có các tham số khác nhau, rằng nó sẽ là xấu xí để viết try/catch cho mỗi người trong số họ.Một trình xử lý ngoại lệ cho tất cả các ngoại lệ của CLASS
Bạn có thể biết cách tôi có thể làm điều đó với việc có một bộ xử lý ngoại lệ trong lớp, điều này sẽ xử lý tất cả.
UPDATE:
Nhiều bạn hỏi tôi tại sao. Lý do là tôi đang gọi một nguồn dữ liệu với các phương thức khác nhau. vì vậy lớp của tôi có hàm getData1, gedData2, getData3, getData4, ...., getDataN. Vấn đề là không có cách nào để kiểm tra xem kết nối vẫn còn mở và tạo kết nối mới là rất rất tốn kém. Vì vậy, tôi đang cố gắng tái sử dụng kết nối và nếu kết nối trên cuộc gọi tiếp theo đã thất bại, tôi sẽ bắt và kết nối lại và thử lại. Đó là lý do tại sao tôi cần điều này thử/bắt tất cả các khối.
để làm điều này cho tất cả các chức năng:
try{
datasource.getData()
}
catch(ConnectionException)
{
datasource.Connect();
datasource.getData()
}
Cảm ơn
Tôi biết đó là một câu hỏi cũ nhưng tôi muốn nói rằng mặc dù tôi chủ yếu là đồng ý với trả lời dưới đây đã được gửi vào ngày câu hỏi được hỏi, có những lúc khả năng này sẽ rất hữu ích. husayt mô tả một ở trên và tôi tìm thấy câu hỏi này bởi vì tôi có một kịch bản khác. Mặc dù câu trả lời của Jack Allan không hoạt động cho kịch bản của tôi, tôi đã bình chọn nó vì nó rất hữu ích trong các tình huống khác và nó rất thông minh, IMHO. Điều đó nói rằng, trước khi bạn sử dụng "giải pháp" của Jack, hãy chắc chắn rằng không có cách nào khác để cấu trúc mã của bạn để tránh sự cần thiết cho điều này hoàn toàn. –
Không có cơ chế như vậy - cũng không nên có, IMHO. Nó không nhất quán với cách thức luồng điều khiển được truyền đi xung quanh. Việc bạn phải làm là "xấu xí" không quan trọng. Nó không quan trọng là giải pháp bạn đã làm, đòi hỏi phải viết thêm mã. Điều quan trọng là bạn có thể viết phần mềm dễ hiểu, và để duy trì sau này, khi bạn (hoặc người khác) đã quên các chi tiết ban đầu. Nếu một phương thức cần phải làm điều gì đó khi một ngoại lệ xảy ra, thì PHẢI có cái gì đó trong phương pháp, điều đó nói phải làm gì. Đây là một điều tốt. – ToolmakerSteve
BTW, tôi đã upvoted câu hỏi, bởi vì tôi nghĩ rằng đây là một câu hỏi tuyệt vời. Nó là hợp pháp, và hữu ích cho người khác, để MUỐN làm điều này. Hiểu TẠI SAO không có cách nào để làm điều này, và hiểu những gì nên làm (mà bạn đã làm, trong câu hỏi của bạn, mặc dù bạn không thích kết quả), sẽ hữu ích cho người khác. – ToolmakerSteve