tailieunhanh - Giáo trình phân tích ứng dụng nguyên lý testfunc khi thực hiện chia với zero p1

Câu lệnh Câu lệnh phân nhánh dựa trên một điều kiện. Điều kiện là một biểu thức sẽ được kiểm tra giá trị ngay khi bắt đầu gặp câu lệnh đó. Nếu điều kiện được kiểm tra là đúng, thì câu lệnh hay một khối các câu lệnh bên trong thân của câu lệnh if được thực hiện. Trong câu điều kiện thì else là phần tùy chọn. Các câu lệnh bên trong thân của else chỉ được thực hiện khi điều kiện của if là sai. Do vậy khi câu lệnh đầy đủ được dùng. | Giáo trình phân tích ứng dụng nguyên lý 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