当前位置:网站首页>Experiment 8 exception handling
Experiment 8 exception handling
2022-07-06 13:55:00 【Wen Wen likes Guo Zia】
Experiment 8 exception handling
The experiment purpose
- Understand the concept of exception and exception handling mechanism
- Master the method of catching exceptions
- Master creating custom exceptions
Experimental hours 2 Class hours
Experimental content
1. Write a program , It is required to input the radius of a circle from the keyboard (double type ), Calculate and output the area of the circle . When no exception handling mechanism is added , The input data is not double Type data ( Such as a string “abc”) What will happen ? After adding the exception handling mechanism , Let the program give an error prompt when entering incorrect type data and ask for re-entry .
package code81;
import java.util.InputMismatchException; // Import input mismatch exception
import java.util.Scanner;
public class code81 {
public static void main(String[] args) {
// TODO Automatically generated method stubs
input:
while(true) { // Loop input
try { // Select the range to catch exceptions
Scanner in = new Scanner(System.in);
double r,area;
System.out.println(" Please enter the radius of the circle :");
r=in.nextDouble();
area=r*r*3.14;
System.out.println(" The area of the circle is :"+area);
}catch(InputMismatchException e) { // Handle input mismatch exceptions
System.out.println(" The input data does not meet the requirements !");
System.out.println(" Please re-enter ");
e.printStackTrace(); // Print the exception information on the command line, the location and cause of the error in the program
continue input; // Keep typing , Make sure the input data is correct
}
}
}
}
2. Analyze the following procedure .
(1) What exceptions will occur when the program runs ? How to catch and handle exceptions ?
(2) Modify the code : No matter whether the program will produce exceptions during execution , Finally, it outputs “ End of program running ”
import java.util.Scanner;
public class ExceptionSample {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a[]=new int[5];
int n,sum=0;
float average;
n=sc.nextInt();
for(int i=0;i<n;i++){
a[i]=sc.nextInt();
sum=sum+a[i];
}
average=(float)sum/n;
System.out.println(average);
}
}
- An input data mismatch exception may occur 、 except 0 abnormal 、 Array out of bounds exception ;
package code82;
import java.util.Scanner;
import java.util.InputMismatchException; // Import input mismatch exception
public class ExceptionSample1 {
public static void main(String[] args) {
// TODO Automatically generated method stubs
Scanner sc=new Scanner(System.in);
int a[]=new int[5];
int n,sum=0;
float average;
n=sc.nextInt();
for(int i=0;i<n;i++) {
try { // Select the range to catch exceptions
a[i]=sc.nextInt();
sum=sum+a[i];
average=(float)sum/n;
System.out.println(average);
}catch(InputMismatchException e) { // Handle input mismatch exceptions
System.out.println(" The input data format does not meet the requirements !");
}catch(ArithmeticException e) { // Processing division 0 abnormal
System.out.println(" except 0 abnormal !");
}catch(ArrayIndexOutOfBoundsException e) { // Handle array out of bounds exception
System.out.println(" Array out of bounds exception !");
}
}
}
}
2. Modify the code : No matter whether the program will produce exceptions during execution , Finally, it outputs “ End of program running ”
package code82;
import java.util.Scanner;
import java.util.InputMismatchException; // Import input mismatch exception
public class ExceptionSample2 {
public static void main(String[] args) {
// TODO Automatically generated method stubs
Scanner sc=new Scanner(System.in);
int a[]=new int[5];
int n,sum=0;
int average;
try { // Select the range to catch exceptions
n=sc.nextInt();
for(int i=0;i<n;i++) {
a[i]=sc.nextInt();
sum=sum+a[i];
}
average=sum/n;
System.out.println(average);
}catch(InputMismatchException e) { // Handle input mismatch exceptions
System.out.println(" The input data format does not meet the requirements !");
}catch(ArithmeticException e) { // Processing division 0 abnormal
System.out.println(" except 0 abnormal !");
}finally { // Ensure that the final program is output as required
System.out.println(" End of program running !");
}
}
}
3. Design a program , Enter two integers and an arithmetic operator (+、-、*、/), According to the operator , Calculate the result of two integers . Considering that the data entered by the user is illegal , Need to catch exception ( Data format is abnormal 、 Abnormal division by zero 、 Illegal operator exception ).
package code83;
import java.util.Scanner;
import java.util.InputMismatchException; // Import input mismatch exception
public class Calculate {
public static void main(String[] args) {
// TODO Automatically generated method stubs
Scanner in = new Scanner(System.in);
int a,b;
String c;
try { // Select the range to catch exceptions
System.out.println(" Please enter two integers to be calculated :");
a=in.nextInt();
b=in.nextInt();
System.out.println(" Please enter operator :");
c=in.next();
switch(c) {
case "+":
System.out.println(a + c + b +"="+(a+b));
break;
case "-":
System.out.println(a + c + b +"="+(a-b));
break;
case "*":
System.out.println(a + c + b +"="+(a*b));
break;
case "/":
System.out.println(a + c + b +"="+(a/b));
break;
default:
throw new Exception(); // Declare discard exception
}
}catch(InputMismatchException e) { // Handle data mismatch exceptions
System.out.println(" Data format is abnormal !");
}catch(ArithmeticException e) { // Processing division 0 abnormal
System.out.println(" except 0 abnormal !");
}catch(Exception e) { // Handle default Illegal operator exception discarded in statement
System.out.println(" Illegal operator exception !");
}
}
}
4. Design a program , Calculate the area of a triangle according to its three sides . It is required to customize an exception class IllegaException, In the method of finding the area area() Declare to throw this exception type , An exception is thrown when the data of three sides input from the keyboard cannot form a triangle .
package code84;
import java.util.Scanner;
import java.util.InputMismatchException; // Import input mismatch exception
public class Triangle {
public static double area(int a,int b,int c) throws IllegaException { // Construct a method to calculate the area of a triangle
if(a+b<=c || a+c<=b || b+c<=a || a<=0 || b<=0 || c<=0) {
throw new IllegaException(); // The type of exception thrown
}
double s=(a+b+c)/2.0;
double area=Math.sqrt(s*(s-a)*(s-b)*(s-c));
return area; // Find the area of the triangle
}
public static void main(String[] args) throws IllegaException {
// TODO Automatically generated method stubs
Scanner in = new Scanner(System.in);
int a,b,c;
System.out.println(" Please enter the length of three sides of the triangle :");
try { // Select the range to catch exceptions
a=in.nextInt();
b=in.nextInt();
c=in.nextInt();
System.out.println(" The area of the triangle is :"+area(a,b,c)); // Call the method of finding the area , The value of the output area
}catch(InputMismatchException e) { // Handle input mismatch exceptions
System.out.println(" The input data format does not match !");
}
}
}
package code84;
public class IllegaException extends Exception { // Custom exception classes IllegaException
IllegaException(){ // Construction method
System.out.println(" Such three sides cannot form a triangle !");
}
}
Summary of experiments
- Using exception handling has more advantages than traditional error management techniques ;
- Using exception handling can separate error handling code from normal code ;
- If a method does not know how to handle the exception that occurs , You can declare to discard the exception when declaring the method ;
- Inheritance other than runtime exceptions is from Exception Subclasses of class are collectively referred to as non runtime exceptions , For this kind of exception ,Java The compiler requires that the program must catch or declare to discard exceptions ;
- Capture exception :try...catch...finally;
- Regardless of try Whether there is an exception in the statement block ,finally Statement blocks are executed ;
- If Java The system exception type provided cannot meet the needs of program design , You can design your own exception types .Java Recommend the user's exception type to Exception Is a direct parent class .
边栏推荐
- 编写程序,模拟现实生活中的交通信号灯。
- 力扣152题乘数最大子数组
- Mixlab unbounded community white paper officially released
- [experiment index of educator database]
- String abc = new String(“abc“),到底创建了几个对象
- 这次,彻底搞清楚MySQL索引
- 1. Preliminary exercises of C language (1)
- Beautified table style
- 仿牛客技术博客项目常见问题及解答(一)
- 2. First knowledge of C language (2)
猜你喜欢
【黑马早报】上海市监局回应钟薛高烧不化;麦趣尔承认两批次纯牛奶不合格;微信内测一个手机可注册俩号;度小满回应存款变理财产品...
这次,彻底搞清楚MySQL索引
MySQL lock summary (comprehensive and concise + graphic explanation)
This time, thoroughly understand the MySQL index
QT meta object qmetaobject indexofslot and other functions to obtain class methods attention
The difference between cookies and sessions
Relationship between hashcode() and equals()
Nuxtjs quick start (nuxt2)
1. Preliminary exercises of C language (1)
4. Branch statements and loop statements
随机推荐
深度强化文献阅读系列(一):Courier routing and assignment for food delivery service using reinforcement learning
HackMyvm靶机系列(5)-warez
canvas基础2 - arc - 画弧线
MySQL中count(*)的实现方式
强化学习基础记录
Nuxtjs快速上手(Nuxt2)
Package bedding of components
[the Nine Yang Manual] 2019 Fudan University Applied Statistics real problem + analysis
Mode 1 two-way serial communication is adopted between machine a and machine B, and the specific requirements are as follows: (1) the K1 key of machine a can control the ledi of machine B to turn on a
Matlab opens M file garbled solution
【手撕代码】单例模式及生产者/消费者模式
关于双亲委派机制和类加载的过程
HackMyvm靶机系列(6)-videoclub
7-1 输出2到n之间的全部素数(PTA程序设计)
实验五 类和对象
Analysis of penetration test learning and actual combat stage
Miscellaneous talk on May 14
ABA问题遇到过吗,详细说以下,如何避免ABA问题
Implementation principle of automatic capacity expansion mechanism of ArrayList
Zatan 0516