java中异常的介绍和总结以及自定义使用

java中异常的介绍和总结以及自定义使用,第1张

java中异常的介绍和总结以及自定义使用

异常介绍

异常类分两大类型:Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常。Exception类还包含运行异常类Runtime_Exception和非运行异常类Non_RuntimeException这两个直接的子类。

异常理解

对于异常是java提供的一直特殊机制,目的是为了程序员更好的对程序进行优化,而在异常的实际开发时,对于新手来说又非常有难度,对于深层次的异常类之间的关系需要在开发中不断的了解

异常的处理方法在代码中都有介绍

package Absttact.com.java.Exception;
import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class Exceptiontest05 {

	public static void main(String [] agrs) {
		m1();
	}
	public static void m1() {
		System.out.println("m1 bagin");
		try {
			m2();
		} catch (FileNotFoundException e) {
			// TODO 自动生成的 catch 块
			System.out.println("Not Found this text");
		}
		System.out.println("m1 end");
		
	}

	public static void m2() throws FileNotFoundException {
		System.out.println("m2 bagin");
			m3();
	  //m3()方法将FileNotFoundException错误抛出
	  //m2()方法的调用者将FileNotFoundException错误处理和抛出系统才不会报错
		System.out.println("m2 end");
	}

	public static void m3() throws FileNotFoundException  {
		new FileInputStream("D:\学习笔记\java\ws.txt");
		
	}
}

异常的自定义

package Absttact.com.java.Exception;
//自定义异常
//在实际开发中有很多sun公司没有提供的异常
public class Exceptiontest11 {

	public static void main(String [] agrs) {
		//异常的使用
		Myexceptiontest sc= new Myexceptiontest("用户名不可以是空");
		//打印异常信息
		sc.printStackTrace();
		
		MyException sd =new MyException("登录密码或密码格式错误");
		sd.printStackTrace();
		
	}
}

//异常自定义
//第一步创建一个类继承Exception或者RuntimeException
//第二步提供两个构造方法,一个有参一个无参
class Myexceptiontest extends Exception {
	//编译是异常
	Myexceptiontest (){
		
	}
  Myexceptiontest ( String  obj){
		super(obj);
	}
}

class MyException extends  RuntimeException {
	//运行是异常
	MyException(){
		
	}
	MyException(String s){
		super(s);
	}
}

异常的练习使用

package 数组与数据结构;
import java.util.Scanner;
//一维数组模拟栈结构
public class Mystack {

	// 创建一维数组
	// Object可以存放任何数据类型的数据
	private Object[] array;
	
	//栈顶,初始值为0
	private int index=0;
	
	public Object[] getArray() {
		return array;
	}
	public void setArray(Object[] array) {
		this.array = array;
	}
	
	//利用构造函数初始化对象
	public   Mystack( ) {
		//默认输入10
		System.out.println("输入数组初始化长度:");
    	Scanner sc= new Scanner(System.in);
    	int a= sc.nextInt();
    	this.array=new Object[a];
   	  System.out.println("输入数组初始化成功:");		
	}
	
   //压栈
	public  void push(Object obj) throws MystackOperationException {
    	if(this.index>=this.array.length)
    	{
    		 throw new MystackOperationException("栈满,压栈失败");
    	}
    	
    	this.array[index]=obj;
    	System.out.println("压栈成功!栈顶指向"+this.index);
    	this.index ++;
	}
 //出站
	public void   pop( Object obj) throws MystackOperationException
	{
		if(this.index<=0)
    	{
			 throw new MystackOperationException("栈空,出栈失败");
    	}
    	
		this.index --;
		System.out.println("出栈成功!栈顶指向"+this.index +"栈元素是"+this.array[index]);
    	this.array[index]=obj;
    	
    	
	}
	
	public static void main(String [] agrs) {
		Mystack a= new Mystack();
       try {
		a.push(new  Object());
		a.push(new  Object());
	    a.push(new  Object());
	    a.push(new  Object());
	    a.push(new  Object());
	} catch (MystackOperationException e) {
		// TODO 自动生成的 catch 块
		e.printStackTrace();
	}
       
        try {
			a.pop(new Object());
			 a.pop(new Object());
		        a.pop(new Object());
		        a.pop(new Object());
		        a.pop(new Object());
		} catch (MystackOperationException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
       
       
	}
}
class MystackOperationException extends  Exception{
	MystackOperationException(){
		
	}
MystackOperationException( String s){
		super(s);
	}
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5597603.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存