个人网站能 做淘客吗,保定做网站百度推广,推广普通话的画,建设一个58一样的网站多少钱目录
自定义异常
1. 为什么要使用自定义异常
自定义运行时异常语法
自定义检查异常语法
示例
2. 异常使用注意事项
Java SE文章参考:Java SE入门及基础知识合集-CSDN博客 自定义异常
1. 为什么要使用自定义异常 在Java 中#xff0c;异常的类型非常的多#xff0c;…目录
自定义异常
1. 为什么要使用自定义异常
自定义运行时异常语法
自定义检查异常语法
示例
2. 异常使用注意事项
Java SE文章参考:Java SE入门及基础知识合集-CSDN博客 自定义异常
1. 为什么要使用自定义异常 在Java 中异常的类型非常的多要想使用这些异常首先必须要熟悉它们。这无疑是一个巨大的工作量很耗费时间。如果我们可以自定异常则只需要熟悉 RuntimeException 、 Exception 和Throwable 即可。这大大缩小了熟悉范围。自定义异常还可以帮助我们快速的定位问题。 自定义运行时异常语法 public class 类名 extends RuntimeException {} 自定义检查异常语法 public class 类名 extends Exception {} 示例 在登录时经常会看到提示 用户名不存在 或者 账号或密码错误 。请使用自定义异常来描述该场景 package com . we . exception ; /** * 用户名不存在异常 * * 异常命名规范场景描述 Exception */ public class UsernameNotFoundException extends Exception { public UsernameNotFoundException (){} public UsernameNotFoundException ( String msg ){ super ( msg ); } } package com . we . exception ; /** * 账号或密码错误异常 */ public class BadCredentialsException extends Exception { public BadCredentialsException (){ } public BadCredentialsException ( String msg ){ super ( msg ); } } package com . we . exception ; import java . util . Scanner ; public class Login { private static Scanner sc new Scanner ( System . in ); public static void main ( String [] args ) { System . out . println ( 请输入账号 ); String username sc . next (); System . out . println ( 请输入密码 ); String password sc . next (); try { login ( username , password ); } catch ( UsernameNotFoundException e ) { e . printStackTrace (); } catch ( BadCredentialsException e ) { e . printStackTrace (); } } public static void login ( String username , String password ) throws UsernameNotFoundException , BadCredentialsException { if ( admin . equals ( username )){ if ( 123456 . equals ( password )){ System . out . println ( 登录成功 ); } else { throw new BadCredentialsException ( 账号或密码错误 ); } } else { throw new UsernameNotFoundException ( 账号不存在 ); } } } 2. 异常使用注意事项
运行时异常可以不处理。 如果父类抛出了多个异常,子类覆盖父类方法时,只能抛出相同的异常或者是该异常的子集。(与协变返回类型原理一致) 父类方法没有抛出异常子类覆盖父类该方法时也不可抛出检查异常。此时子类产生该异常只能捕获处理不能声明抛出 package com . we . exception ; public class Father { public void eat () throws Exception { } public void sleep (){ } public void login (){ } } package com . we . exception ; public class Child extends Father { private String username ; private String password ; public Child ( String username , String password ) { this . username username ; this . password password ; } Override public void eat () throws UsernameNotFoundException { } //父类中的方法没有声明抛出异常子类中方法可以声明抛出运行时异常 Override public void sleep () throws RuntimeException { } //父类中的方法没有声明抛出异常子类中方法不能声明抛出检查异常 Override public void login () { try { Login . login ( username , password ); } catch ( UsernameNotFoundException e ) { e . printStackTrace (); } catch ( BadCredentialsException e ) { e . printStackTrace (); } } } Java SE文章参考:Java SE入门及基础知识合集-CSDN博客