• 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());
    		}
    
    	}
    
    }
    
  • 相关阅读:
    896. 单调数列
    819. 最常见的单词
    collections.Counter()
    257. 二叉树的所有路径
    万里长征,始于足下——菜鸟程序员的学习总结(三)
    Ogre启动过程&原理
    Ogre导入模型
    四元数
    Ogre3D嵌入Qt框架
    如何搭建本地SVN服务
  • 原文地址:https://www.cnblogs.com/feilongblog/p/4675985.html
Copyright © 2020-2023  润新知