日期: 2022-09-21 05:11:59 浏览数:5

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
招远公众号代运营公司

private int value;
FuShuException()
{
super();
}
FuShuException(String msg,int value)
{
super(msg);
this.value = value;
}
public int getValue()
{
return value;
}
}
class Demo
{
int div(int a,int b)throws FuShuException
{
if(b<0) {
// 手动通过throw关键字抛出一个自定义异常对象。
throw new FuShuException("出现了除数是负数的情况------ / by fushu",b);
}
return a/b;
}
}
class ExceptionDemo3
{
public static void main(String[] args)
{
Demo d = new Demo();
try
{
int x = d.div(4,-9);
System.out.println("x="+x);
}
catch (FuShuException e)
{
System.out.println(e.toString());
//System.out.println("除数出现负数了");
System.out.println("错误的负数是:"+e.getValue());
}
System.out.println("over");
}
}
Husky
Husky
lh1***ke@163.com
4年前 (2018-05-07)
Husky
lh1***ke@163.com
21
throws 用于方法上,可抛出多个异常,每个异常的类名用逗号隔开。
try...catch.... 捕获异常时,大的异常(Exception类)放在下方,小的异常放在上方,否则,在异常捕获时,小的异常将不能被捕获,因为全在大的异常类中捕获到。
即: 如果多个 catch 块中的异常出现继承关系,父类异常 catch 块放在最下面。
处理异常的方式,不可以直接打印,或者直接输出,正确的处理方式:
1.根据异常情况处理对应的逻辑
2.使用文件记录异常,便于日后查看
class FuShuException extends Exception
{
private int value;
FuShuException() {
super();
}
FuShuException(String msg, int value) {
super(msg);//调用父类有参构造,获得异常信息
this.value = value;
}
public int getValue() {
return value;
}
}
class Demo {
int div(int a, int b) throws FuShuException {
if (b < 0)
throw new FuShuException("出现了除数是负数的情况by fushu", b);// 手动通过throw关键字抛出一个自定义异常对象。
return a / b;
}
}
public class MyT {
public static void main(String[] args) {
Demo d = new Demo();
try {
int x = d.div(4, -9);
System.out.println("x=" + x);
} catch (FuShuException e) {
System.out.println(e.toString());
System.out.println("错误的负数是:" + e.getValue());
}catch (Exception e) {//大的异常放在下方,小的异常放在上方
System.out.println(e.getMessage());
}
System.out.println("end");
}
}
Husky
Husky
lh1***ke@163.com
4年前 (2018-05-07)
藏剑
947***451@qq.com
参考地址
81
1.检查型异常(Checked Exception)
个人理解:所谓检查(Checked)是指编译器要检查这类异常,检查的目的一方面是因为该类异常的发生难以避免,另一方面就是让开发者去解决掉这类异常,所以称为必须处理(try ...catch)的异常。如果不处理这类异常,集成开发环境中的编译器一般会给出错误提示。
例如:一个读取文件的方法代码逻辑没有错误,但程序运行时可能会因为文件找不到而抛出FileNotFoundException,如果不处理这些异常,程序将来肯定会出错。所以编译器会提示你要去捕获并处理这种可能发生的异常,不处理就不能通过编译。
2.非检查型异常(Unchecked Exception)
个人理解:所谓非检查(Unchecked)是指编译器不会检查这类异常,不检查的则开发者在代码的编辑编译阶段就不是必须处理,这类异常一般可以避免,因此无需处理(try ...catch)。如果不处理这类异常,集成开发环境中的编译器也不会给出错误提示。
例如:你的程序逻辑本身有问题,比如数组越界、访问null对象,这种错误你自己是可以避免的。编译器不会强制你检查这种异常。
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
、对于异常的捕获不应该觉得方便而将几个异常合成一个Exception进行捕获,比如有IO的异常跟SQL的异常,这样完全不同的两个异常应该分开处理!而且在catch里处理异常的时候不要简单的e.printStackTrace(),而是应该进行详细的处理。比如进行console打印详情或者进行日志记录。
doublefan
187***60835@163.com
599069310
599***310@qq.com
Java 语言定义了一些异常类在 java.lang 标准包中。标准运行时异常类的子类是最常见的异常类。由于 java.lang 包是默认加载到所有的 Java 程序的,所以大部分从运行时异常类继承而来的异常都可以直接使用。
/** * 异常: * finally不一定被执行,,例如 catch 块中有退出系统的语句 System.exit(-1); finally就不会被执行 * */import java.io.*;public class Demo { /** * @param args */ public static void main(String[] args) { //检查异常1.打开文件 FileReader fr=null; try { fr=new FileReader("d:a.text"); // 在出现异常的地方,下面的代码的就不执行 System.out.println("aaa"); } catch (Exception e) { System.out.println("进入catch"); // 文档读取异常 // System.exit(-1); System.out.println("message="+e.getLocalizedMessage()); //没有报哪一行出错 e.printStackTrace(); // 打印出错异常还出现可以报出错先异常的行 } // 这个语句块不管发生没有发生异常,都会执行 // 一般来说,把需要关闭的资源,文件,连接,内存等 finally { System.out.println("进入finally"); if(fr!=null); { try { fr.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } } System.out.println("OK"); }}599069310
599***310@qq.com
Husky
lh1***ke@163.com
throws 用在函数上,声明该函数的功能可能会出现问题。
将异常抛出,是问题暴露出来,用于处理。
可以抛给虚拟机处理,或者使用 try....catch... 进行处理。虚拟机的处理方式,就是将异常打印出来,并且将在异常处的代码终止。
throw 用在代码块中,后面跟着异常的对象,该对象可以是自定义异常,且 throw 使用在方法中。
class FuShuException extends Exception //getMessage();{ private int value; FuShuException() { super(); } FuShuException(String msg,int value) { super(msg);