Java5, 8, 9 章复习 (内加5.6章学生选课系统,以及第十七次作业(完成第4章内容))

本文详细介绍了Java中的异常处理机制,包括异常体系结构、异常处理语法和实践案例。此外,深入探讨了Java中的字符串不可变性,以及String类的常用方法。还提到了StringBuilder类在字符串操作中的优势,以及如何避免不必要的对象创建。最后,简要概述了Java中的包装类及其转换方法。
摘要由CSDN通过智能技术生成

第一章 异常与异常处理

1-1 Java异常简介

2、异常处理:将出现的异常提示给编程人员与用户,使原本将要中断的程序继续运行或者退出。并且能够保存数据和释放资源。
二、异常体系结构
1、所有异常都继承于Throwable类,其下有两大子类:
(1)Error类:错误,一般编程人员不太接触,如虚拟机错误、线程死锁。硬伤:使程序崩溃
(2)Exception类:异常,编码、环境、用户输入等问题,其子类主要有:
·非检查异常(运行时异常RuntimeException):【由java虚拟机自动捕获】如空指针NullPointer、越界ArrayIndexOutofBounds、错误类型转换ClassCast、算数异常Arithmetic等
·检查异常CheckException:【需要手动添加捕获和处理语句】文件异常IO等

1-2 Java中使用try...catch.finally实现异常处理

处理异常
try-catch以及try-catch-finally try {
System.out.print("请输入你的年龄:");
Scanner input =new Scanner(System.in); 
int age =input.nextInt();
System.out.println("十年后你"+(age + 10)+"岁")
} catch (InputMismatchException e) {
System.out.println("你应该输入整数!!!");}
System.out.println("程序结束啦");

 

顺序问题: 

 

1-3 Java中通过案例学习try...catch.finally

package com.imooc.test;
public class TryCatchTest{
 
**/
@param args
 
	public static void main(String[] args) {
 
    // TODO Auto-generated method stub
    /**
     *divider(除数):*result(结果):
     *try-catch捕获while循环
     *每次循环,divider减一,result=result+100/divider
     *如果:捕获异常,打印输出”抛出异常了!!!“,返回-1
     */
	TryCatchTest tct=new TryCatchTest();
	int result=tct.test();
	System.out.println("test()方法,执行完毕!返回值为:"+result);
 
	}
public int test(){
	int divider=10;
	int result=100;
	try{
		while(divider>-1){
			divider--;
			result=result+100/divider;
		}
	}catch(Exception e){
		e.printStackTrace();
		System.out.println("循环抛出异常了!!!");
		
	}
	return -1;
}
}

public class TryCatchTest {
 
	public static void main(String[] args) {
	TryCatchTest tct=new TryCatchTest();
	int result=tct.test();
	System.out.println("test()方法,执行完毕!返回值为:"+result);
int result2=tct.test2();
System.out.println("我想大声告诉你!test2()执行完毕!!");
	}
public int test(){
	int divider=10;
	int result=100;
	try{
		while(divider>-1){
			divider--;
			result=result+100/divider;
		}
	}catch(Exception e){
		e.printStackTrace();
		System.out.println("循环抛出异常了!!!");
		
	}
	return -1;
}
public int test2(){
	int divider=10;
	int result=100;
	try{
		while(divider>-1){
			divider--;
			result=result+100/divider;
		}
	}catch(Exception e){
		e.printStackTrace();
		System.out.println("循环抛出异常了!!!");
		
	}finally{
		System.out.println("这是finally!!哈哈!!");
		System.out.println("我是Result!!我的值是:"+result);
	}
	return result=999;
	
}
}

public class TryCatchTest {
 
	public static void main(String[] args) {
	TryCatchTest tct=new TryCatchTest();
	int result=tct.test();
	System.out.println("test()方法,执行完毕!返回值为:"+result);
int result2=tct.test2();
System.out.println("我想大声告诉你!test2()执行完毕!!");
int result3=tct.test3();
System.out.println("我想大声告诉你!test3()执行完毕!!");
	}
public int test(){
	int divider=10;
	int result=100;
	try{
		while(divider>-1){
			divider--;
			result=result+100/divider;
		}
	}catch(Exception e){
		e.printStackTrace();
		System.out.println("循环抛出异常了!!!");
		
	}
	return -1;
}
public int test2(){
	int divider=10;
	int result=100;
	try{
		while(divider>-1){
			divider--;
			result=result+100/divider;
		}
	}catch(Exception e){
		e.printStackTrace();
		System.out.println("循环抛出异常了!!!");
		
	}finally{
		System.out.println("这是finally!!哈哈!!");
		System.out.println("我是Result!!我的值是:"+result);
	}
	return result=999;
	
}public int test3(){
	int divider=10;
	int result=100;
	try{
		while(divider>-1){
			divider--;
			result=result+100/divider;
		}
	}catch(Exception e){
		e.printStackTrace();
		System.out.println("循环抛出异常了!!!");
		
	}finally{
		System.out.println("这是finally!!哈哈!!");
		System.out.println("我是Result!!我的值是:"+result);
	}
	
	
	System.out.println("我是test3!我运行完了!表想我!!!~");
	return result=999;
}
}

 

1-4 练习题

 

1-5 Java中的异常抛出以及自定义异常

 

 

package com.imooc.test;
public class DrunkException extends Exception{
public DrunkException(){
 
public DrunkException(String message){
 super(message);
}

1-6 练习题

1-7 Java中的异常链

package com.imooc.test;
public class ChainTest{
/**
*test1():抛出“喝大了”异常
*test20):调用test1(,捕获“喝大了”异常,并且包装成运行时异常,继续抛出*main方法中,调用test20),尝试捕获test20)方法抛出的异常
*/
public static void main(String[]args){
ChainTest ct=new ChainTest(); 
try{
ct.test2();
}catch(Exception e){
 e.printStackTrace();
 }
}
public void test1() throws DrunkException{
 throw new DrunkException("喝车别开酒!");
}
public void test2(){
 try { 
  test1();
} catch (DrunkException e) {
// TODO Auto-generated catch block
RuntimeException newExc=new RuntimeException("司机一滴酒,亲人两行泪~~")
 newExc.initCause(e); 
throw newExc;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值