大数据库异常处理问题详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、
一、实验/实习过程
实验题1在程序中产生一个ArithmeticException类型被0除的异常,并用catch 语句捕获这个异常。最后通过ArithmeticException类的对象e 的方法getMessage给出异常的具体类型并显示出来。
package Package1;
public class除数0 {
public static void main(String args[]){
try{
int a=10;
int b=0;
System.out.println("输出结果为:"+a/b);
}
catch(ArithmeticException e){
System.out.println("除数不能为0"+e.getMessage());
}
}
}
实验题2在一个类的静态方法methodOne()方法使用throw 产生ArithmeticException异常,使用throws子句抛出methodOne()的异常,
在main方法中捕获处理ArithmeticException异常。
package Package1;
public class抛出异常 {
static void methodOne() throws ArithmeticException{
System.out.println("在methodOne中");
throw new ArithmeticException("除数为0");
}
public static void main(String args[]){
try{
int a=10;
int b=0;
int c=1;
System.out.println("输出结果为:"+a/b);
}
catch(ArithmeticException e){
System.out.println("除数不能为0"+e.getMessage());
}
}
}
实验题3编写一个程序,输入一个班某门课程成绩,统计及格人数、不及格人数平均分。设计一个异常类,当输入的成绩小0分或大于100分时,抛出异常,程序将捕捉这个异常,并做出相应处理。
package实习异常;
public class课程成绩 {
double grade=0;
static int number=0;
static int pass=0;
static int unpass=0;
static double sum=0;
void setGrade(double grade) throws NullPointerException{
if(grade>100 || grade<0){
System.out.println("成绩"+grade+"不合理");
}
else{
if(grade>=60){
++pass;
}
else{
++unpass;
}
sum=sum+grade;
this.grade=grade;
}
}
public static void main(String args[]){
int number=4;
课程成绩 people=new课程成绩();
try{
people.setGrade(110);
}
catch(NullPointerException e){
System.out.println("成绩"+e.getMessage()+"不合理");
}
try{
people.setGrade(-1);
}
catch(NullPointerException e){
System.out.println("成绩"+e.getMessage()+"不合理");
}
people.setGrade(20);
people.setGrade(100);
people.setGrade(80);
people.setGrade(40);
System.out.println("及格人数为:"+pass);
System.out.println("不及格人数为:"+unpass);
System.out.println("平均成绩为:"+sum/number);
}
}
实验题4创建异常类的练习。需要使用3个Java程序来实现:Bank.java
InsufficientFundsException.java
ExceptionDemo.java
●创建银行类Bank,包括如下的方法:
Bank(double balance)
deposite(double dAmount)
withdrawal(double dAmount)
show_balance()
●创建异常类:InsufficientFundsException。若取钱数大于余额则
作为异常处理。创建此异常类的思路是:(1)产生异常的条件是余
额少于取额, 因此是否抛出异常要判断条件(注意throw的使用)。
(2)取钱是withdrawal()方法中定义的动作,因此在该方法中产生
异常。(3)处理异常安排在调用withdrawal()的时候,因此
withdrawal()方法要声明异常,由上级方法调用(注意throws的使
用)。创建此异常类的具体要求:异常类中需添加excepMesagge()
方法,用于调用Bank类的show_balance()方法,显示“您的取款金
额为XXX,但是账户余额仅为XXX,操作不合法!”。
●创建主类:ExceptionDemo,用于测试新创建的两个类。注意
try-catch语句的使用,并且在错误处理的catch块中,使用
InsufficientFundsException异常类的excepMesagge()方法以及
Exception类(父类)的toString()方法。最后添加finally块,输
出“操作退出!”。
package Package;
public class InsufficientFundsException extends Exception{
String message;
public InsufficientFundsException(double balance,double amount){
message="您的取款金额为"+balance+",但是账户余额为"+amount+",操作不合法!";
}
public String toString(){
return message;
}