java新手笔记23 异常

1.import

package com.yfs.javase;

import java.util.Scanner;

//import java.lang.String;//默认导入
public class Demo1 {
	
	public static void main(String[] args) {
		String s = new String("abc");//java.lang.String
		String s1 = "abc";

		System.out.println("影分身");//输出
		Scanner scan = new Scanner(System.in);//输入
		System.err.println("我没错...");//错误流
		
		long now = System.currentTimeMillis();
		System.out.println("系统时间  " + String.format("%tF %<tT",  now));
	    //System.exit(0);
		
		System.out.println (System.getenv("java_home"));
	    
	    System.out.println("程序执行到此...");
	
	}

}

 2.异常

package com.yfs.javase;
//异常
//执行出现异常 jvm 终止代码执行 
//报告错误原因 
//机制 
public class ExpDemo1 {
	
	public static void main(String[] args) {
		String s = null;//没有对象
		//s.toString();//NullpointException
		int[] a = new int[5];
		//a[5] = 20; //ArrayIndexOutOfBoundsException
		
		int b = 3;
		int c = 0;
		int d = b / c;//ArithmeticException
		
		
		System.out.println("程序执行结束...");
	}
	
	
}

 3.运行时异常

Person 类

package com.yfs.javase;

public class Person {

	private String name;
	private int age;
	private char sex;

	public Person() {
		
	}

	public Person(String name) {
		this.name = name;
	}

	public Person(String name, int age, char sex) {
		this.name = name;
		this.age = age;
		this.sex = sex;
	}

	public void introduce() {
		System.out.println("I am Person....");
	}

	public String toString() {
		return "姓名:" + name + "  年龄 :" + age + "  性别:" + sex;
	}

	public void speak() {
		System.out.println(name + " 工件了吗?");
	}

	public void sleep() {
		System.out.println(name + " 睡觉了吗?");
	}

	public void eat() {
		System.out.println(name + " 吃了吗?");
	}

	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;
	}

	public char getSex() {
		return sex;
	}

	public void setSex(char sex) {
		this.sex = sex;
	}

}

 类转换异常

package com.yfs.javase;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

//异常分类

public class ExpDemo2 {

	public static void main(String[] args) {
		// 运行时异常
		Object obj = new Person();
		// String s = (String)obj;//ClassCastException
		
		// check异常 编译时强制处理
		try {
			InputStream in = new FileInputStream("123.txt");
		} catch (FileNotFoundException e) {
			System.out.println("异常处理完成...");
			e.printStackTrace();
		}

		System.out.println("程序执行结束...");
	}

}

 4.抛异常

package com.yfs.javase;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.sql.SQLException;

//抛异常

public class ExpDemo3 {

	public static void main(String[] args) throws FileNotFoundException {
		// 谁调用谁处理 没有对象处理 jvm处理 终止程序
		// try {
		try {
			test();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// } catch (FileNotFoundException e) {
		// e.printStackTrace();
		// }
	}

	// 在方法抛出异常  throws 可以抛多个异常
	public static void test() throws FileNotFoundException, SQLException {
		int[] a = new int[3];
		a[3] = 15;// 系统检查抛出异常

		// 自己抛 throw
		if (1 == 1) {
			throw new ArithmeticException("故意抛异常");
		}
		// check 异常
		InputStream in = new FileInputStream("123.txt");
	}
}

 5.异常处理

package com.yfs.javase;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.sql.SQLException;

//异常处理  catch  捕获异常对象  处理异常

public class ExpDemo4 {

	public static void main(String[] args) {
		String s = "abc";
		int[] a = new int[3];
		//try...catch...finally
	    try{
			a[3] = 15;//jvm创建异常对象  抛出异常  处理第一个异常
			s.toString();
			//可以有多个catch语句块
	    }  
//	    catch (ArrayIndexOutOfBoundsException e) {//捕获异常
//			//e.printStackTrace();
//	    	System.out.println("我知道了..我是故意的");
//		} catch (NullPointerException e) {
//			System.out.println("字符串异常处理完成...");
//		} catch (Exception e) {
//			e.printStackTrace();
//			// finally 总会执行
//		} 
	    finally {
			System.out.println("总是执行....");
		}
		

		
		System.out.println("程序执行结束...");
	}

	
}

 6.自定义异常

package com.yfs.javase;
//自定义异常
public class ExpSelf extends Exception {

	public ExpSelf() {
		super();
		// TODO Auto-generated constructor stub
	}

	public ExpSelf(String message, Throwable cause, boolean enableSuppression,
			boolean writableStackTrace) {
		super(message, cause, enableSuppression, writableStackTrace);
		// TODO Auto-generated constructor stub
	}

	public ExpSelf(String message, Throwable cause) {
		super(message, cause);
		// TODO Auto-generated constructor stub
	}

	public ExpSelf(String message) {
		super(message);
		// TODO Auto-generated constructor stub
	}

	public ExpSelf(Throwable cause) {
		super(cause);
		// TODO Auto-generated constructor stub
	}
	//String参数的构造方法
//	public ExpSelf(String msg) {
//		super(msg);//调用父类构造方法
//	}
	

}

 7.自定义异常 测试

package com.yfs.javase;

import java.io.IOException;

public class Test {

	public static void main(String[] args) {
		try {
			if( 1 == 1) {
				throw  new ExpSelf("异常了,自己定义的...", new IOException());
			}
		} catch (ExpSelf e) {
			//e.printStackTrace();
			System.out.println(e.getMessage());
			System.out.println(e.fillInStackTrace());
			System.out.println(e.toString());
		}

	}

}

 

转载于:https://www.cnblogs.com/feilongblog/p/4675985.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值