java代码中抛出异常 java抛出异常后还会继续执行吗

java抛出异常抛出异常分为两种吧java代码中抛出异常 , 一种是制造异常java代码中抛出异常,一种是抛出可能发生java代码中抛出异常的异常
throw关键字,抛出一个异常(即制造一个异常),用法throw 异常,该异常必须为java.lang.Exception的子类,如果是RuntimeException子类的话 , 则不需要捕获或抛出异常 。
throws关键字,抛出一个可能发生的异常,用在函数定义中,末尾处 , 以主函数为例子,public static void main(String[] args) throws 异常;该异常必须为Exception子类 , 常用于其子类,是这一个方法体执行中可能抛出(throw)的异常处理 。如果不进行throws,也可以用try...catch语句进行捕获 。
自定义异常,类一定(间接)继承java.lang.Exception类,当然 , 继承java.lang.RuntimeException就可以不用进行处理,下面举一个例子java代码中抛出异常:
public class TestException extends Exception {
public TestException(String message) {
super(message);
}
public TestException() {}
}
一般自定义异常需要有2个构造函数,五参构造器和String类型构造器 , 有参构造调用父类有参构造 。
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);
}
}
}
编译时出现java代码中抛出异常:
C:\Documents and Settings\Administrator\桌面\新建文件夹\jisaunqi.java:45: jisuanqi 中的 actionPerformed(java.awt.event.ActionEvent) 无法实现 java.awt.event.ActionListener 中的 actionPerformed(java.awt.event.ActionEvent)java代码中抛出异常;被覆盖的方法不抛出 NumException
解析:
【java代码中抛出异常 java抛出异常后还会继续执行吗】 这段代码有问题:
实现接口
public void actionPerformed(ActionEvent e) throws NumException{声明异常
public void actionPerformed(ActionEvent e)不应该抛出异常java代码中抛出异常,ActionListener接口函数没有异常抛出
一种可能的解决方法是把判断移到另外一个函数中,然后抛出异常,在actionPerformed中捕获或者在外面捕获
java查不到数据抛异常会怎么样java 捕获和抛出异常
异常通常是程序运行时出现java代码中抛出异常的问题和错误 。如:客户输入数据的格式,读取的文件是否存在,网络是否保持通畅等 。java程序在执行过程中发生的异常事件分为:异常和错误
异常:(Exception)
异常指程序运行过程中出现的非正常现象 。可能遇到的轻微错误,可以写代码处理异常并继续继承执行 , 不应让程序中断 。
错误:(Error)
错误事件的发生通常会阻止程序正常运行 。对于java虚拟机无法解决的严重问题,如jvm系统内部错误,资源耗尽等情况,一般不编写针对性的代码进行处理 。
对于被认为是不能恢复的严重错误,不应该抛出,而应该让程序中断 。
错误与异常最大的区别是错误往往比异常严重,发生java代码中抛出异常了错误 , 一般不能在应用程序中捕获处理,程序只能非正常终止运行 。
异常的简单分类:
(1):检查性异常
最具有代表性的是用户错误或者是问题引起的而异常,这是程序员无法预见的 。例如要打开一个不存在的文件时 , 异常就发生了,这些异常在编译时不能被简单的忽略 。
(2):运行时异常
它是可能被程序员避免的异常,与检查性异常相反,运行时可以在编译时被忽略 。
(3):错误
错误不是异常 , 而是脱离程序员控制的问题,错误在代码中通常被忽略 。例如当栈溢出时,一个错误就发生了 , java代码中抛出异常他们在编译中也查不到 。
java把异常当做对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类
JAVA如何抛出异常如果java代码中抛出异常你知道你写的某个函数有可能抛出异常java代码中抛出异常,而你又不想在这个函数中对异常进行处理 , 只是想把它抛出去让调用这个函数的上级调用函数进行处理,那么有两种方式可供选择java代码中抛出异常:
第一种方式:直接在函数头中throws SomeException,函数体中不需要try/catch 。比如将最开始的例子中的testEx2改为下面的方式 , 那么testEx1就能捕捉到testEx2抛出的异常了 。
boolean testEx2() throws Exception{
boolean ret = true;
int b=12;
int c;
for (int i=2;i=-2;i--){
c=b/i;
System.out.println("i=" i);
}
return true;
}
第二种方式:使用try/catch,在catch中进行一定的处理之后(如果有必要的话)抛出某种异常 。例如上面的testEx2改为下面的方式 , testEx1也能捕获到它抛出的异常:
boolean testEx2() throws Exception{
boolean ret = true;
try{
int b=12;
int c;
for (int i=2;i=-2;i--){
c=b/i;
System.out.println("i=" i);
}
return true;
}catch (Exception e){
System.out.println("testEx2, catch exception");
Throw e;
}
}
第三种方法:使用try/catch/finally , 在catch中进行一定的处理之后(如果有必要的话)抛出某种异常 。例如上面的testEx2改为下面的方式,testEx1也能捕获到它抛出的异常:
boolean testEx2() throws Exception{
boolean ret = true;
try{
int b=12;
int c;
for (int i=2;i=-2;i--){
c=b/i;
System.out.println("i=" i);
throw new Exception("aaa");
}
return true;
}catch (java.lang.ArithmeticException e){
System.out.println("testEx2, catch exception");
ret = false;
throw new Exception("aaa");
}finally{
System.out.println("testEx2, finally; return value="https://www.04ip.com/post/ret);
}
}
关于java代码中抛出异常和java抛出异常后还会继续执行吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读