java声明抛出异常代码 java抛出异常throw

java提供给程序主动抛出异常的语句

直接throws Exception 写在你的方法或者类名后

创新互联建站专注于白云企业网站建设,成都响应式网站建设公司,商城开发。白云网站建设公司,为白云等地区提供建站服务。全流程按需求定制开发,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务

或者用try catch

在 Java 应用程序中,异常处理机制为:抛出异常,捕捉异常。

抛出异常:当液烂一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。

捕获异常:在方法抛出异常之后,运行时系统将转为寻找合适的异常处理器(exception handler)。潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合。当异常处理器所能处理的异常类型与方法抛出的异常类型相符时,即为合适 的异常处理器。运行时系统从发生异常的方法开始,依次回查调用栈中的方法,直至找到含有合适异常处理器的方法并执行。当运行时系统遍历调用栈而未找到合适 的异常处旅困理器,则运行时系统终止。同时,意味着Java程序的终止。

对于运行时异常、错误或可查异常,Java技术所要求的异常处理拆埋念方式有所不同。

由于运行时异常的不可查性,为了更合理、更容易地实现应用程序,Java规定,运行时异常将由Java运行时系统自动抛出,允许应用程序忽略运行时异常。

对于方法运行中可能出现的Error,当运行方法不欲捕捉时,Java允许该方法不做任何抛出声明。因为,大多数Error异常属于永远不能被允许发生的状况,也属于合理的应用程序不该捕捉的异常。

java中 方法中抛出异常处理方法

Java语言提供两种异常处理机制:捕获异常和声明抛弃异常。

1、捕获异常:

(1)在Java程序运行过程中系统得到一个异常对象是,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。

(2)找到能够处理这种类型异常的方法后,运行时系统把当前异常交给这个方法处理;如果找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。

(3)捕获异常是通过try-catch-finally语句实现的。语法为:

try{

...

}catch(ExceptionName1e){

...

}catch(ExceptionName2e){

...

}

...

}finally{

...

}

2、声明抛弃异常:

(1)当Java程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃异常。

(2)声明抛弃异常是在一个方法声明中的throws子句中指明的。如:

publicintread()throwsIOException{

...

}

其中throwsIOException就是声明抛弃异常,throws后可以跟多个异常类型。

扩展资料:

程序设计语言的异常机制:

1、多数语言的异常机制的语法是类似的:用throw或raise抛出一个异常对象(Java或C++等)或一个特殊可扩展的枚举类型的值(如Ada语言);

2、异常处理代码的作用范围用标记子句(try或begin开斗肆裂始的语言作用域)标示其起始,以第一个异常处理子句(catch,except,resuce等)标示其结束;可连续出现若干个异常处理子句,每个处理特定类型的异常。

3、某些语言允许else子句,用于无异常出现的情况。更多见的是finally,ensure子句,无论是否出现异常它都将执行,用于释放异常处理所需的一些资源。

(1)C++异常处理是资源获取即初始化(Resource-Acquisition-Is-Initialization)的基础。

(2)C语言一般认为是不支持异常处理的。Perl语言可选择支持结构化异常处理(structuredexceptionhandling)。

(3)雹昌Python语言对异常处理机制是非常普遍深入的,所以想写出不含try,except的空闭程序非常困难。

参考资料来源:

百度百科-异常处理

java自定义异常抛出

分茄携类: 电脑/网络 程序设计 其他编程语言

问题描述颤袜:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

自定义异常类

class NumException extends Exception{

public String toString(){

return "输入的值太小";

}

public String shuru(){

return "请输入数字";

}

}

class jisuanqi extends JFrame implements ActionListener,ItemListener{

JRadioButton rz;

JRadioButton rm;

ButtonGroup bg;

JTextField txt;

JButton btnj;

String msg;

jisuanqi(){

super("计算器");

rz=new JRadioButton("周长"茄纳激);

rm=new JRadioButton("面积");

bg=new ButtonGroup();

txt=new JTextField();

btnj=new JButton("计算");

msg="";

this.getContentPane().setLayout(new GridLayout(2,2));

bg.add(rz);

bg.add(rm);

this.getContentPane().add(rz);

this.getContentPane().add(rm);

this.getContentPane().add(txt);

this.getContentPane().add(btnj);

this.setSize(200,200);

rz.addItemListener(this);

rm.addItemListener(this);

btnj.addActionListener(this);

}

实现接口

public void actionPerformed(ActionEvent e) throws NumException{声明异常

if (Double.parseDouble(txt.getText())=0){

throw new NumException();抛出异常

}

if (msg.equals("周长")){

txt.setText(""+(3.14*2*Double.parseDouble(txt.getText())));

}

if (msg.equals("面积")){

txt.setText(""+3.14*(Double.parseDouble(txt.getText())*Double.parseDouble(txt.getText())));

}

}

实现接口

public void itemStateChanged(ItemEvent e){

if (e.getSource()==rz){

msg="周长";

}

if (e.getSource()==rm){

msg="面积";

}

}

public static void main(String args[]){

try{

jisuanqi js=new jisuanqi();

js.setVisible(true);

}

catch(NumException ex){

System.out.println(ex);

}

}

}

编译时出现:

C:\Documents and Settings\Administrator\桌面\新建文件夹\jisaunqi.java:45: jisuanqi 中的 actionPerformed(java.awt.event.ActionEvent) 无法实现 java.awt.event.ActionListener 中的 actionPerformed(java.awt.event.ActionEvent);被覆盖的方法不抛出 NumException

解析:

这段代码有问题:

实现接口

public void actionPerformed(ActionEvent e) throws NumException{声明异常

public void actionPerformed(ActionEvent e)不应该抛出异常, ActionListener接口函数没有异常抛出

一种可能的解决方法是把判断移到另外一个函数中,然后抛出异常,在actionPerformed中捕获或者在外面捕获


分享标题:java声明抛出异常代码 java抛出异常throw
标题链接:http://myzitong.com/article/ddpjges.html