概述
Java
的异常处理的五个关键字
, try
、
catch
、
finally
、
throw
、
throws
的关系:
处理异常方式: 1 try-catch 捕获到异常后在catch中进行处理
2 throws 在方法的开始出throws异常,调用该方法的地方处理该异常!
一个方法在声明时可以使用throws声明抛出所要产生的若干个异常,并在该方法的方法体中具体给出产生异常的操作。
•用户定义的异常同样要用try--catch捕获,但必须由用户自己抛出 throw new MyException()。
•异常是一个类,用户定义的异常必须直接或间接继承自Throwable或Exception类,建议用Exception类。
例如:
- package com.mys.ajax;
- /**自定义异常类,
- * 当方法传递的是负数是发生MyException
- */
- public class MyException extends Exception {
- String message;
- public MyException(int n) {
- message = n+"不是正数";
- }
- public String getMessage() {
- return message;
- }
- public void setMessage(String message) {
- this.message = message;
- }
- }
- package com.mys.ajax;
- public class TestMyException {
- public void check(int n) throws MyException{
- if(n<0){
- throw new MyException(n);//抛出异常,结束方法check()时执行
- }
- double number = Math.sqrt(n);
- System.out.println(n+"的平方根是"+number);
- }
- public static void main(String[] args) {
- TestMyException test = new TestMyException();
- try {
- test.check(8);//一般在最后调用该法的的方法(如main)体中处理异常
- test.check(-2);
- } catch (MyException e) {//必须要捕获异常
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
执行结果如下:
com.mys.ajax.MyException: -2不是正数
at com.mys.ajax.TestMyException.check(TestMyException.java:7)
at com.mys.ajax.TestMyException.main(TestMyException.java:18)
8的平方根是2.8284271247461903
自定义异常还可以是多个:
以下是分享网友的:
- /*
- 异常练习1
- */
- class NoValueException extends Exception
- {
- NoValueException(String msg)
- {
- super(msg);
- }
- }
- interface Shape
- {
- void getArea();
- }
- class Rec implements Shape
- {
- private int len , wid;
- Rec(int len , int wid) throws NoValueException
- {
- if( len <= 0 || wid <= 0)
- throw new NoValueException("出现非法值!");
- this.len = len;
- this.wid = wid;
- }
- public void getArea()
- {
- System.out.println(len*wid);
- }
- }
- class ExceptionTest
- {
- public static void main(String [] args)
- {
- try
- {
- Rec r = new Rec(-3,4);
- r.getArea();
- }
- catch ( NoValueException e)
- {
- System.out.println(e.toString());
- }
- System.out.println("Over");
- }
- }
- /*
- 异常练习2
- */
- class NoValueException extends RuntimeException
- {
- NoValueException(String msg)
- {
- super(msg);
- }
- }
- interface Shape
- {
- void getArea();
- }
- class Rec implements Shape
- {
- private int len , wid;
- Rec(int len , int wid) //throws NoValueException
- {
- if( len <= 0 || wid <= 0)
- throw new NoValueException("出现非法值!");
- this.len = len;
- this.wid = wid;
- }
- public void getArea()
- {
- System.out.println(len*wid);
- }
- }
- class ExceptionTest
- {
- public static void main(String [] args)
- {
- Rec r = new Rec(-3,4);
- r.getArea();
- System.out.println("Over");
- }
- }
最后
以上就是文艺睫毛为你收集整理的Java异常----自定义异常类(throw和throws关键字的用法)的全部内容,希望文章能够帮你解决Java异常----自定义异常类(throw和throws关键字的用法)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复