Không, những gì bạn đang yêu cầu không thể thực hiện được trong C #.
Thay vào đó, giải pháp thích hợp cho vấn đề này là sử dụng các phương pháp phân tích cú pháp tốt hơn sẽ không tạo ra các ngoại lệ ngay từ đầu. Nếu giá trị đầu vào của bạn có thể là null, thì hãy sử dụng các phương pháp phân tích cú pháp có thể chấp nhận giá trị null.
Điều đầu tiên bạn có thể cần làm là sử dụng các kiểu nullable cho các trường int / bool của bạn, để bạn có thể hỗ trợ các giá trị null. Tiếp theo, bạn sẽ cần tạo các phương thức của riêng mình để phân tích cú pháp ints / bools. Nếu thông tin đầu vào của bạn là null, hãy trả về null, nếu không, hãy sử dụng int.TryParse
, bool.TryParse
(hoặc as
đối với mỗi nếu đầu vào của bạn là loại thích hợp, chỉ cần truyền đến đối tượng object
).
Sau đó, bằng cách sử dụng các phương pháp đó, thay vì Convert
, ngay từ đầu bạn sẽ không đưa ra các ngoại lệ (điều mà bạn không nên làm ở đây ngay cả khi nó có thể hoạt động, vì các ngoại lệ dành cho các trường hợp ngoại lệ, không phải luồng điều khiển dự kiến).