tailieunhanh - Hình thành công thức điều chỉnh testfunc khi thực hiện chia với zero

Trong ví dụ này, phương thức DoDivide() sẽ không cho phép chúng ta chia cho zero bởi một số khác, và cũng không cho phép chia số zero. Nó sẽ phát sinh một đối tượng của Divide- ByzeroException nếu chúng ta thực hiện chia với zero. Trong toán học việc lấy zero chia cho một số khác là được phép, nhưng trong ví dụ minh họa của chúng ta không cho phép thực hiện việc này, nếu thực hiện sẽ phát sinh ra một ngoại lệ Arithmetic Exception | Giáo trình hình thành công thức điều chỉnh testfunc khi thực hiện chia với zero public static void Main Test t new Test ta thử chia hai phần xử lý ngoại lệ riêng public void TestFunc try double a 5 double b 0 0 1 2 a b DoDivide a b catch DivideByZeroException caught catch ArithmeticException caught catch Unknown exception caught thực hiện phép chia hợp lệ public double DoDivide double a double b if b 0 throw new if a 0 throw new return a b 372 H Kết quả DivideByZeroException caught Trong ví dụ này phương thức DoDivide sẽ không cho phép chúng ta chia cho zero bởi một số khác và cũng không cho phép chia số zero. Nó sẽ phát sinh một đối tượng của Divide-ByzeroException nếu chúng ta thực hiện chia với zero. Trong toán học việc lấy zero chia cho một số khác là được phép nhưng trong ví dụ minh họa của chúng ta không cho phép thực hiện việc này nếu thực hiện sẽ phát sinh ra một ngoại lệ ArithmeticException. Khi một ngoại lệ được phát sinh CLR sẽ kiểm tra mỗi khối xử lý ngoại lệ theo thứ tự và sẽ lấy khối đầu tiên thích hợp. Khi chúng ta thực hiện với a 5 và b 7 thì kết quả như sau 5 7 Như chúng ta mong muốn không có ngoại lệ được phát sinh. Tuy nhiên khi chúng ta thay đổi giá trị của a là 0 thì kết quả là ArithmeticException caught Ngoại lệ được phát sinh và CLR sẽ kiểm tra ngoại lệ đầu tiên DivideByZeroException. Bởi vì không phù hợp nên nó sẽ tiếp tục đi tìm và khối xử lý ArithmeticException được chọn. Cuối cùng giả sử chúng ta thay đổi giá trị của b là 0. Khi thực hiện điều này sẽ dẫn đến ngoại lệ DivideByZeroException. Ghi chú Chúng ta phải cẩn thận thứ tự của câu lệnh catch bởi vì DivideByZero-Exception được dẫn xuất từ ArithmeticException. Nếu chúng ta đảo thứ tự của câu lệnh catch thì ngoại lệ DivideByZeroException sẽ được phù hợp với khối xử lý ngoại lệ

TỪ KHÓA LIÊN QUAN