JAVA语言中,异常处理有哪几种方式

JAVA语言中,异常处理有哪几种方式,第1张

有两中方式:1捕获异常,自己处理

2throw出去,让别人处理

举个例子:

public class A{

try{

可能放生异常的语句

}catch(Exception e){

egetMessage();//自己处理

}

}

public class A throws Exception{

可能放生异常的语句

}//throw出去,让别人处理

注意这里用的是throws

如果在方法里面则用throw

举例:

public class A{

try{

可能放生异常的语句

}catch(Exception e){

egetMessage();//自己处理

throw new Exception ("");

}

}

import javautilScanner;

public class B {

public static void main(String args[]) throws Exception {

Systemoutprintln("1C# 2Java 3html");

boolean flag=true;//while循环是否继续,true继续循环,false停止循环

int num=0;//存放输入内容转成int之后的变量

while(flag){

Scanner scan = new Scanner(Systemin);

Systemoutprintln("请输入课程代号(1-3之间的数字):");

String bh=scannext();

try {

num = new B()checkInt(bh);

flag=false;//输入的内容转成int成功时,停止循环输入

}catch (ClassCastException e) {//输入为小数类型时

Systemoutprintln("请输入整数");

} catch (NumberFormatException e) {//输入非数字类型时

Systemoutprintln("请输入正确的数字");

}catch (ArithmeticException e) {//输入的数字不在1-3之间时

Systemoutprintln("请输入1-3之间的数");

}

}

//以下输出你选择的课程

if(num==1){

Systemoutprintln("你输入的课程是:1C#");

}else if(num==2){

Systemoutprintln("你输入的课程是:2Java");

}else if(num==3){

Systemoutprintln("你输入的课程是:3html");

}

}

int checkInt(String bh)throws Exception{

try{

int num = IntegerparseInt(bh);//将输入的内容转换成int

if(num<1 || num>3){

throw new ArithmeticException();//转成int成功但不在1-3之间,手动抛出异常

}else{

return num;

}

}catch (NumberFormatException e) {//转换成int类型时失败

try{

DoubleparseDouble(bh);//转成double类型

throw new ClassCastException();//转成double类型成功,手动抛出异常

}catch (NumberFormatException e2) {//转成double类型失败

throw new NumberFormatException();//手动抛出转型失败异常

}

}

}

}

//用到trycatch还有手动抛出异常做的

17218686 2552552550 17218680 20211916011 20211916012 19216811 25525500 19216811 19216811 19216811 //首先你要先自定义两个异常类NegativeException和OddException public class NegativeException extends Exception{ public NegativeException(String s){ super(s); } public NegativeException(){ super(""); } } public class OddException extends Exception{ public OddException(String s){ super(s); } public OddException(){ super(""); } } //然后就要定义一个InputDigit实现10个整数的输入,我这举例用的10,具体多少你自己决定 import javautil; public class InputDigit { int a[]=new int[10]; Scanner sc=new Scanner(Systemin); //创建输入端 public void getDigit(){ //getDigit方法从键盘接收整型数据 Systemoutprintln("请输入10个整数:"); for(int i=0;i<10;i++){ a[i]=scnextInt(); } } } //最后定义一个求偶数平方根的类Osqrt public class Osqrt extends InputDigit{ private int s=0; public Osqrt(){ } public void ossqrt() { for(int i=0;i<10;i++) try { if(a[i]<0) throw new NegativeException("负数异常"); else if(a[i]%2==1) throw new OddException("奇数异常"); else Systemoutprintln(a[i]+"的平方根为:"+Mathsqrt(a[i])); } catch(NegativeException e){ Systemoutprintln(a[i]+"是一个负数"); } catch(OddException e){ Systemoutprintln(a[i]+"是一个奇数"); } } public static void main(String[] args){ Osqrt mk=new Osqrt(); mkgetDigit(); mkossqrt(); } } // 运行主类Osqrt就行了,如果有不懂的地方可以问我,由于不可以插图,不然把结果给你看看了

比如说io异常,如果文件不存在,但是你又去读,肯定会出异常的这个时候就要try,catch *** 作了一般可能出现异常的地方要么trycatch掉,要么throws给别人去解决如果文件正常读取,那就没有异常了

很简单的,如果你查api文档会发现类System有个“字段摘要”,很容易发现有个out,

它返回static PrintStream,还会发现System有个方法是static void setOut(PrintStream out)

重新分配“标准”输出流。 再点击PrintStream,很明显它是OutputStream

的子类 解决如下

输出流重定向

import javaio;

public class IO2File {

public static void main(String[] args) throws IOException {

File f=new File("outtxt");

fcreateNewFile();

FileOutputStream fileOutputStream = new FileOutputStream(f);

PrintStream printStream = new PrintStream(fileOutputStream);

SystemsetOut(printStream);

Systemoutprintln("默认输出到控制台的这一句,输出到了文件 outtxt");

}

}

以上就是关于JAVA语言中,异常处理有哪几种方式全部的内容,包括:JAVA语言中,异常处理有哪几种方式、Java控制台中精确判断输入数字用“什么抛异常”、JAVA 中关于异常捕获的编程问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9625400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存