「java多重catch」Java多重循环
本篇文章给大家谈谈java多重catch,以及Java多重循环对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java异常错误为什么要catch那么多次?
- 2、java中什么叫多重捕获MultiCatch,它的用法是怎样的
- 3、java中try 与catch的使用?
- 4、在Java的异常处理模型中,多重catch中同时使用时,Exception为什么最后列出
- 5、JAVA中,多个catch真的是最理想的方式吗(暂时不谈throws)?
- 6、java catch多个异常
java异常错误为什么要catch那么多次?
你这样catch不对。IOExeption范围比FileNotFoundException大,所以你是不能catch到第二个Exception。就像你return之后的语句是执行不到的。
try catch模块之所以可以添加很多catch是因为你在try块了可能有很多操作产生exception,但是调试的时候,你必须要确定具体是哪个地方出错了,那就需要catch不同级别的exception。而且必须是先catch具体的exception,然后加大范围,所以你把IOEx和FileNotF 这两个catch模块掉个个就行。
如果为了方便,那只要一个catch (Exception e)就解决了。一般不推荐
java中什么叫多重捕获MultiCatch,它的用法是怎样的
multicatch就是捕获多个异常,其原因就是被监控的语句可能发生多重异常,例子如下
try{
----------
} catch (IOException e) {
} catch (NullPointerException e) {
}
java中try 与catch的使用?
try{
//代码区
}catch(Exception e){
//异常处理
}
try语句:
try语句用大括号{}指定了一段代码,该段代码可能会抛弃一个或多个例外。
catch语句:
catch语句的参数类似于方法的声明,包括一个例外类型和一个例外对象。例外类型必须为Throwable类的子类,它指明了catch语句所处理的例外类型,例外对象则由运行时系统在try所指定的代码块中生成并被捕获,大括号中包含对象的处理,其中可以调用对象的方法。
catch语句可以有多个,分别处理不同类的例外。Java运行时系统从上到下分别对每个catch语句处理的例外类型进行检测,直到找到类型相匹配的catch语句为止。这里,类型匹配指catch所处理的例外类型与生成的例外对象的类型完全一致或者是它的父类,因此,catch语句的排列顺序应该是从特殊到一般。
也可以用一个catch语句处理多个例外类型,这时它的例外类型参数应该是这多个例外类型的父类,程序设计中要根据具体的情况来选择catch语句的例外处理类型。
在Java的异常处理模型中,多重catch中同时使用时,Exception为什么最后列出
因为它是顺序执行的,能截取较少范围异常的异常处理类在前面,这是java允许的,java不允许的是直接把所有异常类的父类Exception写在子类之前,因为那样后面的就是废弃的代码永远不会被执行到,java为了防止这种情况出现就会在编译的时候不通过
JAVA中,多个catch真的是最理想的方式吗(暂时不谈throws)?
1,整个代码中要求不能出现任何错误,并且没有用户交互数据,如果出了异常,这种情况通常都是要修改代码才能解决的,这种直接 抛出去,不需要try
2,代码中有用户交互,并且用户数据的数据要有格式限制,如何输入的数据有错误,就会出异常,这种情况是数据格式不对,代码没有错误,这种就要用try语句,并且按异常类型进行信息反馈给用户,让用户知道什么错,然后进行修改。
catch是不是要很多类型,主要看这个信息谁看,如果是反馈给用户,每种catch的异常类型的信息肯定不同,并且还要进行说明,
有些异常出了错,还要对出错语句以前的某些操作的信息进行操作,而有些又不需要,这种就要 分别catch
java catch多个异常
//例子一
import java.util.Random;
public class Test
{
public static void main(String[] args)
{
final Random r=new Random();
final Exception[] exs=
{
new Exception1(),
new Exception2(),
new Exception("Exception")
};
for(int i=0;i5;i++)
{
try
{
throw exs[r.nextInt(exs.length)];
}
catch(Exception1 ex)
{
System.out.println(ex);
}
catch(Exception2 ex)
{
System.out.println(ex);
}
catch(Exception ex)
{
System.out.println(ex);
}
}
}
}
class Exception1 extends Exception
{
@Override
public String toString()
{
return "Exception1";
}
}
class Exception2 extends Exception
{
@Override
public String toString()
{
return "Exception2";
}
}
//例子二(需较新的java版本才能支持)
import java.util.Random;
public class Test
{
public static void main(String[] args)
{
final Random r=new Random();
final Exception[] exs=
{
new Exception1(),
new Exception3(),
new Exception2(),
new Exception("Exception")
};
for(int i=0;i5;i++)
{
try
{
throw exs[r.nextInt(exs.length)];
}
catch(Exception3|Exception1|Exception2 ex)
{
System.out.println(ex);
}
catch(Exception ex)
{
System.out.println(ex);
}
}
}
}
class Exception1 extends Exception
{
@Override
public String toString()
{
return "Exception1";
}
}
class Exception2 extends Exception
{
@Override
public String toString()
{
return "Exception2";
}
}
class Exception3 extends Exception
{
@Override
public String toString()
{
return "Exception3";
}
}
关于java多重catch和Java多重循环的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-01,除非注明,否则均为
原创文章,转载请注明出处。