您现在的位置是:网站首页>javajava

java异常处理

deling2019年4月9日java217人已围观

简介java异常处理

java中的异常处理

java中的异常处理:

我们可以用

  • try-catch-finally : 捕获异常

  • try :  执行可能产生异常的代码

  • catch :   捕获异常

  • finally:  无论try-catch中执不执行,finally都会按顺序执行

  • throws:   声明可能要抛出的异常(声明异常)

  • throw:   手动抛出异常

来处理异常

语法组合:

  • try -catch

  • try -catch -finally

  • try -finally

  • try -catch -catch -finally

注意事项:
  • catch和finally不能脱离try而独自存在的

  • 一个程序中可以有多个catch,也可以没有catch,但是catch不能独自存在

强制终止finally的场景
  • System.exit(1);   终止程序运行的方法,终止当前正在运行的jvm虚拟机,中间的数字必须非零,其余数字 随便取

  • e.printStackTrace();  输出显示异常

import java.util.InputMismatchException;
    import java.util.Scanner;     
    public class TryDemoOne1 {	// 输入一个数,求他的商
	public static void main(String[] args) {		
	        // TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);		
		try {
		System.out.println("计算开始!");
		System.out.println("请输入第一个数:");		 
		int  one = sc.nextInt();
		System.out.println("请输入第二个数:");		
		int twe = sc.nextInt();
		System.out.println("one和twe的商为:"+(one/twe));
		}catch(ArithmeticException e) {
			System.out.println("不能被零整除!");
			e.printStackTrace();
		}catch(InputMismatchException e) {
			System.out.println("请输入整数!");
			e.printStackTrace();
			e.printStackTrace();
		}catch(Exception e) {
			System.out.println("程序报错");
			e.printStackTrace();
		}		
		finally {
		System.out.println("计算结束!");
		}
	}
}
常见的异常:
  • ParseException   解析异常,日期字符串转换为日期对象的时候,有可能抛出的异常

  • OutOfIndexException   数组下标越界异常

  • OutOfMemoryError   内存不足

  • ClassCastException   类型转换异常

  • ArithmeticException   除数为零

  • NullPointerException   空指针异常

throw和throws
  • throws:声明将要抛出的何种类型的异常类型,如果一个方法可能出现异常,但是没有能力处理这种异常,可以在声明处用throws子句来抛出异常

public void method() throws Exception1,Exception2{
         //可能产生异常的代码
     }

当方法抛出异常列表中异常时,方法将不对这些类型及其子类类型的异常作出处理,而抛向调用该方法的方法,由它去处理!

当子类重写父类抛出异常的方法时,声明的异常必须是父类方法所声明异常的同类或者子类

  • throw:将产生的异常抛出

例如:throw new Exception();

throw 抛出的只能够是可抛出类Throwable或者其他子类的实例化对象!

例如:Throw new Exception("出错了!");

例如:网吧限制年龄的问题

    import java.util.InputMismatchException;
    import java.util.Scanner;    
    public class TryDemoOne4 {    		
    public static void test() throws InputMismatchException,Exception {
    			Scanner sc = new Scanner(System.in);    			
    			try{
    			System.out.println("请输入你的年龄:");    			
    			int age = sc.nextInt();    			
    			if(age<18) {    				
    			throw new Exception("你年龄不到18岁!无法上网!");
    			}else {
    				System.out.println("欢迎光临本网吧!");
    			}
    			}catch(InputMismatchException e) {
				System.out.println("请输入整数!");
				e.printStackTrace();
			}
    		}    		
    	        public static void main(String[] args) {    		
    			try {
    				test();
    			} catch (Exception e) {    				
    				e.printStackTrace();
    			}
    	}
    }
javatry7.jpg
异常处理机制的两种方式:
  • 抛出异常

  • 捕获异常

异常都是先被抛出,后被捕捉的

自定义异常

定义一个类,去继承Throwable类或者它的子类


Tags: java

很赞哦! (4)

留言

来说点儿什么吧...

您的姓名: *

选择头像: *

留言内容:

    2019年2月25日 13:35嘿嘿

    2019年2月26日 13:20ok

    可以可以!

    2019年3月18日 09:2311

    1

    2019年3月28日 09:24www.ikeguang.com

    可以可以

    2019年5月29日 18:47qwe

    666

    2019年5月30日 16:52BlankYk

    he,tui~

    2019年5月30日 17:04123

    321

    2019年6月26日 10:02周树人

    厉害厉害

    2019年6月26日 10:34sdlakrj

    sdaag

    2019年6月29日 15:31sdagafdbaf

    dgafdgdfh

    站长回复:你这是什么什么高级语言,我表示看不懂哈哈

    2019年7月6日 16:37啦啦

    写的真好!谢谢博主

    站长回复:谢谢!

    2019年8月14日 12:35傻傻

    厉害 小林