欢迎光临散文网 会员登陆 & 注册

Java(8题):异常,通过try catch进行处理,登录,商品,使用jdbc进行读取,详细图析

2020-03-01 22:16 作者:诗书画唱  | 我要投稿

1.要求输入班级人数,人数必须是正整数。通过异常机制来处理下,提示输入的人数不能为负数

package a;


import java.util.Scanner;


public class yichang {

public static void main(String[] args) {


try {

System.out.println("请输入班级的人数");

Scanner s = new Scanner(System.in);

int renshu = s.nextInt();

if (renshu < 0) {

throw new RuntimeException("人数必须为正整数");

}

System.out.println("班级人数为" + renshu);

} catch (RuntimeException e) {

System.out.println("输入的人数不能为负数");

}

}

}

2.定义一个数组长度为3的数组,打印其数据,要求(使用异常制作)


package a;


public class yichang {

public static void main(String[] args) {



try {

int[] up=new int[3];

int num1=10;

int num2=1;

int num3=num1/num2;//除数为0的异常

up[0]=11;

up[1]=22;

up[2]=33;

up[3]=44;//下标越界的异常


} catch (ArithmeticException e) {

//出现除数为0的时候执行这块的内容

//除数为的操作

System. out. println("b站up主诗书画唱提醒你,你的除数为0啦,快点赞!");

}catch(ArrayIndexOutOfBoundsException e1){

//下标越界操作

System. out. println("b站up主诗书画唱提醒你,下标越界啦,快投币!");

}

catch(Exception e2){

//其他异常

System. out. println( "b站up主诗书画唱提醒你,出现了其他类型的异常,快三连,关注!");

}



}

}

3、创建Student对象,设置name和age属性,在main方法中添加如下的代码:
Student stu = null;
stu.setName("张三");
System.out.println("学生的姓名设置完毕");

4.请分析以上的代码出现的错误,并通过try catch进行处理。


package a;


public class yichang {

public static void main(String[] args) {



try {

Student stu=null;

stu. setName("张三");

System . out. println("诗书画唱提醒你,学生的姓名设置完毕");

} catch (Exception e) {

// TODO: handle exception

System. out. println("诗书画唱提醒你,学生的姓名设置有误");

}

}


class Student{

private String name;

private int age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}




}}

5.定义人的年龄不能大于100岁并小于1岁(使用异常制作)


package a;


import java.util.Scanner;


public class yichang {

public static void main(String[] args) {






try {System.out.println("请输入年龄");




Scanner s=new Scanner(System.in);//声明Scanner接收的类




int age= s.nextInt();//接收用户输入整形的数据


if(100<age||age<1){throw new Exception();

}

else{System . out. println("诗书画唱提醒你,人的年龄设置完毕");}

} catch (Exception e) {

// TODO: handle exception

System. out. println("诗书画唱提醒你,人的年龄不能大于100岁并不能小于1岁");

}

}


class shangpin{

private String name;

private int age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {


this.age =age;

}




}}




//6.制作登录界面,使用异常判断用户输入是否为空,输入内容长度是否大于6位数,密码是否为空,年龄是否满18(使用异常制作)

package a;




import java.util.Scanner;




public class yichang {




public static void main(String[] args) {




che timegame = new huoche(1, "时间游戏", 30, 0, 3);




che mengame = new huoche(2, "爷们游戏", 50, 0, 5);




che   woman= new keche(3, "女人游戏", 40, 4, 0);




che run = new keche(4, "跑步游戏", 80, 10, 0);




che swim = new pika(5, "游泳游戏", 60, 2, 4);




che sing = new pika(6, "唱歌游戏", 100, 4, 8);




che[] c = new che[6];




c[0] = timegame;


c[1] = mengame;


c[2] = woman;




c[3] = run;


c[4] = swim;


c[5] = sing;




yonghu yh = new yonghu();




che[] c_zuche = null;




while (true) {




System.out.println("---------“诗书画唱”名品牌游戏购买系统-----------");




System.out.println("请输入你的操作:1.登录  2.注册  3.跳出系统");




Scanner s = new Scanner(System.in);




int num = s.nextInt();




if (num == 1) {




System.out.println("----执行登录操作----");




System.out.println("请输入用户名:");

String uname = s.next();

try{

if(uname.length()<6){throw new StringIndexOutOfBoundsException("诗书画唱提醒你,"

+ "输入内容长度已经小于6");

/*拋出异常*/

}



else{System . out. println("输入内容长度已经不小于6");

}


} catch (StringIndexOutOfBoundsException e) {


// TODO: handle exception


System. out. println("诗书画唱提醒你,输入内容长度已经小于6,为确保你的安全,"

+ "最好大于6位数!且密码不能为空!");


}








System.out.println("请输入你的密码");




String pwd = s.next();

System.out.println("请输入你的年龄");


int age = s.nextInt();



if (uname.equals(yh.uname) && pwd.equals(yh.pwd)&& age ==yh.age) {




System.out.println("登录成功!");




break;




} else {




System.out.println("登录失败");




}




} else if (num == 2) {




System.out.println("----执行注册操作----");




System.out.println("请输入用户名:");

String uname = s.next();



System.out.println("请输入你的年龄");

int age = s.nextInt();


try{

if(age<18){throw new Exception("诗书画唱提醒你,你未满18岁,不能玩和购买这款游戏!");


}else{System . out. println("诗书画唱提醒你,年龄设置成功!");}


}

catch (Exception e) {


// TODO: handle exception


System. out. println("诗书画唱警告你,你未满18岁!");



}




System.out.println("请输入你的密码(最好输入内容长度大于6位数,不能为空)");

String pwd = s.next();

//pwd=null;

try{

if(pwd.length()<6){throw new StringIndexOutOfBoundsException("诗书画唱提醒你,密码不能小于6位数!");

/*拋出异常*/

}



else{System . out. println("诗书画唱提醒你,密码设置成功!");}


} catch (StringIndexOutOfBoundsException e) {


// TODO: handle exception


System. out. println("诗书画唱提醒你,输入内容长度不大于6位数,为确保你的安全,"

+ "必须大于6位数!且密码不能为空!");


}


catch (NullPointerException e) {


// TODO: handle exception


System. out. println("诗书画唱提醒你,密码不能为空!");


}





System.out.println("因为国家法律,要实名认证,请输入你的真实姓名");




String name = s.next();



yh.uname = uname;




yh.pwd = pwd;




yh.name = name;


yh.age = age;



System.out.println("注册成功!");




} else if (num == 3) {




System.exit(0);




}




}




// 购买游戏操作




while (true) {




System.out.println("欢迎," + yh.name + "请选择你的操作:");




System.out


.println("1.查看游戏列表  2.进行购买  3.查看我的购买总价格,总可在线玩人数,总可下线玩人数 4.跳出系统");




Scanner s1 = new Scanner(System.in);




int num = s1.nextInt();




if (num == 1) {




for (che i : c) {/* 相当于for(int i=0;i<c.length;i++) */




i.jieshao();




}




} else if (num == 2) {




System.out.println("请输入你要买的游戏数");




int num1 = s1.nextInt();




c_zuche = new che[num1];




for (int i = 0; i < num1; i++) {




System.out.println("请输入第" + (i + 1) + "游戏的编号");




int bianhao = s1.nextInt();




switch (bianhao) {




case 1:




c_zuche[i] = timegame;


break;




case 2:




c_zuche[i] = mengame;


break;




case 3:




c_zuche[i] = woman;


break;




case 4:




c_zuche[i] = run;


break;




case 5:




c_zuche[i] = swim;


break;




case 6:




c_zuche[i] = sing;


break;




}




}




System.out.println("购买成功!");




} else if (num == 3) {




if (c_zuche == null) {




System.out.println("你还没有进行购买呢!");




} else {




int zongjiage = 0;




int zongkezaixianwanrenshu = 0;




int zongkexiaxianwanrenshu = 0;




for (che i : c_zuche) {




i.jieshao();




zongjiage += i.jiage;




zongkezaixianwanrenshu += i.zaikeliang;




zongkexiaxianwanrenshu += i.zaiwuliang;




}




System.out.println("总价格" + zongjiage + "总可在线玩人数" +




zongkezaixianwanrenshu + "总可下线玩人数" + zongkexiaxianwanrenshu);




}




} else {




System.exit(0);/* 终止系统,不可为break,break是跳出循环 */




}




}




}




}




class yonghu {




String uname;




String pwd;




String name;

int age;



}




abstract class che {




int bianhao;




String name;




int jiage;




int zaikeliang;




int zaiwuliang;




public che(int bianhao, String name, int jiage, int zaikeliang,int zaiwuliang) {




this.bianhao = bianhao;




this.name = name;




this.jiage = jiage;




this.zaikeliang = zaikeliang;




this.zaiwuliang = zaiwuliang;




}




abstract void jieshao();




}




class huoche extends che {




public huoche(int bianhao, String name, int jiage,




int zaikeliang, int zaiwuliang) {




super(bianhao, name, jiage, zaikeliang, zaiwuliang);




}




void jieshao() {




System.out.println("编号" + this.bianhao + "\t名称:" + this.name +




"\t价格" + this.jiage + "\t总可在线玩人数" + this.zaiwuliang);




}




}




class keche extends che {




public keche(int bianhao, String name, int jiage, int zaikeliang,




int zaiwuliang) {




super(bianhao, name, jiage, zaikeliang, zaiwuliang);




}




void jieshao() {




System.out.println("编号" + this.bianhao + "\t名称:" +




this.name + "\t价格" + this.jiage + "\t总可下线玩人数" + this.zaikeliang);




}




}




class pika extends che {




public pika(int bianhao, String name, int jiage, int zaikeliang,




int zaiwuliang) {




super(bianhao, name, jiage, zaikeliang, zaiwuliang);




}




void jieshao() {




System.out.println("编号" + this.bianhao + "\t名称:" +




this.name + "\t价格" + this.jiage + "\t总可在线玩人数" + this.zaikeliang + "总可下线玩人数" +




this.zaiwuliang);




}




}

7.定义商品类,判断商品的价格是否大于100并小于500(使用异常制作)

package a;


import java.util.Scanner;


public class yichang {

public static void main(String[] args) {






try {System.out.println("请输入商品的价格");




Scanner s=new Scanner(System.in);//声明Scanner接收的类




int jiage= s.nextInt();//接收用户输入整形的数据


if(500<jiage||jiage<100){throw new Exception();

}

else{System. out. println("诗书画唱提醒你,商品的价格大于100并小于500");}

} catch (Exception e) {

// TODO: handle exception

System. out. println("诗书画唱提醒你,商品的价格不大于100并且不小于500");

}

}


class shangpin{

private String name;

private int jiage;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getJiage() {

return jiage;

}

public void setJiage(int jiage) {


this.jiage =jiage;

}




}}

//JDBC作业:

//1.建立一张数据库表stu,包含编号,姓名,年龄,性别,成绩属性,使用jdbc进行读取数据库中的数据


package a;

import java.sql.*;

public class yichang {


public static void main(String[] args) {

// TODO Auto-generated method stub

//Jar:各个数据库厂商都实现了ODBC规范,形成了自己的API,就是我们导入的这个jar包

// 1.加载数据库驱动(非运行时的异常)

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

// 2.建立连接(参数三个,1用户名   2密码   3数据库名称)

//这个链接数据库也要抛异常,为了方便,我将所有异常一块抛出

Connection con=DriverManager.getConnection("jdbc:sqlserver://DESKTOP-49FTFSP;"

+ "databaseName=stud","sa","1234abcd");

// 3.执行SQL语句

String sql="select * from Student";

Statement sta=con.createStatement();

// 4.获取结果(存入到数据连接池中)

ResultSet res=sta.executeQuery(sql);

// 5.遍历结果

while(res.next()){

System.out.print(res.getObject("Id")+"   ");

System.out.print(res.getObject("Name")+"   ");

System.out.print(res.getObject("Gender")+"   ");

System.out.print(res.getObject("Height")+"   ");

System.out.print(res.getObject("Weight")+"   ");

System.out.print(res.getObject("Age")+"   ");

System.out.print(res.getObject("Class")+"   ");

System.out.println();

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


}


}












类比替换法。

相关知识图:













看结构


Java(8题):异常,通过try catch进行处理,登录,商品,使用jdbc进行读取,详细图析的评论 (共 条)

分享到微博请遵守国家法律