大数据库异常处理问题详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;
}
}
package Package;
public class Bank {
double balance=0;
double amount=0;
public void withdrawal(double balance,double amount) throws InsufficientFundsException{
if(amount>balance){
throw new InsufficientFundsException(amount, balance);
}
else{
this.amount=amount;
this.balance=balance;
}
}
public double show_balance(){
System.out.println("您的取款金额为"+amount+",账户剩余金额为:"+(balance-amount));
return amount;
}
}
package Package;
public class ExceptionDemo {
public static void main(String args[]){
Bank amount1=new Bank();
Bank amount2=new Bank();
try{amount1.withdrawal(1000.0, 2000.0);
System.out.println(amount1.show_balance());
}
catch(InsufficientFundsException e){
System.out.println(e.toString());
}
try{amount2.withdrawal(1000.0, 200.0);;
System.out.println(amount2.show_balance());
}
catch(InsufficientFundsException e){
System.out.println(e.toString());
}
finally{
System.out.println("操作退出!");
}
}
}
二、实验/实习总结
这次的实习,大多是看着书中的例题写的,很有点照猫画虎的味道。

想想自己对待学习的态度还是有些不认真,就像第四个题目,完全桉书中模式套了上去,可能和老师您的要求有些出入,但是自己就算是这样,也不能清楚的给你解答,自己有点犯迷糊,你问我这两种方法有什么区别,我不能给出正确的回答,因为题目要求我还没弄明白,书中的解答我也只是知之甚少,看来还要下很大的功夫,先把有些基本方法,对象,概念啥的弄明白,免得以后外人问我Java问题,我却不能用规的语言给人家表达。

Well done! 2013-11-04。

相关文档
最新文档