当前位置:网站首页>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 .
边栏推荐
- 仿牛客技术博客项目常见问题及解答(二)
- Custom RPC project - frequently asked questions and explanations (Registration Center)
- Differences among fianl, finally, and finalize
- Strengthen basic learning records
- [the Nine Yang Manual] 2018 Fudan University Applied Statistics real problem + analysis
- MySQL事务及实现原理全面总结,再也不用担心面试
- 附加简化版示例数据库到SqlServer数据库实例中
- Redis的两种持久化机制RDB和AOF的原理和优缺点
- FAQs and answers to the imitation Niuke technology blog project (I)
- ArrayList的自动扩容机制实现原理
猜你喜欢
fianl、finally、finalize三者的区别
仿牛客技术博客项目常见问题及解答(一)
HackMyvm靶机系列(5)-warez
HackMyvm靶机系列(6)-videoclub
.Xmind文件如何上传金山文档共享在线编辑?
Have you encountered ABA problems? Let's talk about the following in detail, how to avoid ABA problems
FAQs and answers to the imitation Niuke technology blog project (II)
强化学习基础记录
PriorityQueue (large root heap / small root heap /topk problem)
Custom RPC project - frequently asked questions and explanations (Registration Center)
随机推荐
[modern Chinese history] Chapter V test
[three paradigms of database] you can understand it at a glance
[graduation season · advanced technology Er] goodbye, my student days
为什么要使用Redis
Renforcer les dossiers de base de l'apprentissage
ABA问题遇到过吗,详细说以下,如何避免ABA问题
Brief introduction to XHR - basic use of XHR
Implementation of count (*) in MySQL
[the Nine Yang Manual] 2017 Fudan University Applied Statistics real problem + analysis
Strengthen basic learning records
[during the interview] - how can I explain the mechanism of TCP to achieve reliable transmission
实验四 数组
Callback function ----------- callback
C language Getting Started Guide
[data processing of numpy and pytoch]
[MySQL table structure and integrity constraint modification (Alter)]
Reinforcement learning series (I): basic principles and concepts
SRC挖掘思路及方法
(原创)制作一个采用 LCD1602 显示的电子钟,在 LCD 上显示当前的时间。显示格式为“时时:分分:秒秒”。设有 4 个功能键k1~k4,功能如下:(1)k1——进入时间修改。
[au cours de l'entrevue] - Comment expliquer le mécanisme de transmission fiable de TCP