爪哇中throw和throws之间的区别
在本教程中,我们将看到Java中throw和throws之间的区别。
扔:
扔关键字用于引发任何自定义异常或预定义异常。
例如:
让’s说您想在员工年龄小于18岁时抛出invalidAgeException。
创建一个Employee类,如下所示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
包 组织.Arpit.爪哇2blog; 上市 类 雇员 { 串 名称; 整型 年龄; 上市 串 getName() { 返回 名称; } 上市 虚空 setName(串 名称) { 这个.名称 = 名称; } 上市 整型 getAge() { 返回 年龄; } 上市 虚空 setAge(整型 年龄) { 如果(年龄 < 18) 尝试 { 扔 新 InvalidAgeException(“雇员的年龄不能小于18岁”); } 抓住 (InvalidAgeException e) { e.printStackTrace(); } 这个.年龄 = 年龄; } } |
如下创建InvalidAgeException类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
包 组织.Arpit.爪哇2blog; 上市 类 InvalidAgeException 延伸 例外{ 串 信息; InvalidAgeException(串 信息) { 超(信息); 这个.信息=信息; } } |
现在,如下所示创建一个名为EmployeeExceptionTest.java的主类。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
包 组织.Arpit.爪哇2blog; 上市 类 雇员ExceptionTest { 上市 静态的 虚空 主要(串[] args) { 雇员 e1 = 新 雇员(); e1.setName(“约翰”); e1.setAge(25); 雇员 e2 = 新 雇员(); e2.setName(“马丁”); e2.setAge(17); } } |
当您运行上述程序时,将获得以下输出:
1 2 3 4 5 |
组织.Arpit.爪哇2blog.InvalidAgeException: 雇员's 年龄 能够 不 是 减 比 18 在 组织.Arpit.爪哇2blog.雇员.setAge(雇员.爪哇:19) 在 组织.Arpit.爪哇2blog.异常测试.主要(异常测试.爪哇:14) |
抛出:
抛出关键字用于声明该方法可能抛出的所有异常的列表。它把处理异常的责任委托给调用方法。
例如:
让’s表示您希望在员工年龄小于18岁且应在main方法中处理InvalidAgeException异常时在setAge()方法中声明InvalidAgeException。
创建一个Employee类,如下所示。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
包 组织.Arpit.爪哇2blog; 上市 类 雇员 { 串 名称; 整型 年龄; 上市 串 getName() { 返回 名称; } 上市 虚空 setName(串 名称) { 这个.名称 = 名称; } 上市 整型 getAge() { 返回 年龄; } 上市 虚空 setAge(整型 年龄) 抛出 InvalidAgeException{ 如果(年龄 < 18) 扔 新 InvalidAgeException(“雇员的年龄不能小于18岁”); 这个.年龄 = 年龄; } } |
如下创建InvalidAgeException类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
包 组织.Arpit.爪哇2blog; 上市 类 InvalidAgeException 延伸 例外{ 串 信息; InvalidAgeException(串 信息) { 超(信息); 这个.信息=信息; } } |
现在,如下所示创建一个名为EmployeeExceptionTest.java的主类。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
包 组织.Arpit.爪哇2blog; 上市 类 雇员ExceptionTest { 上市 静态的 虚空 主要(串[] args) { 尝试 { 雇员 e1 = 新 雇员(); e1.setName(“约翰”); e1.setAge(25); 雇员 e2 = 新 雇员(); e2.setName(“马丁”); e2.setAge(17); } 抓住 (InvalidAgeException e) { e.printStackTrace(); } } } |
当您运行上述程序时,将获得以下输出:
1 2 3 4 5 |
组织.Arpit.爪哇2blog.InvalidAgeException: 雇员's 年龄 能够 不 是 减 比 18 在 组织.Arpit.爪哇2blog.雇员.setAge(雇员.爪哇:19) 在 组织.Arpit.爪哇2blog.异常测试.主要(异常测试.爪哇:14) |
如果您注意到,我们在Employee中使用了throws关键字’的setAge方法,而不是处理InvalidAgeException。
1 2 3 4 5 6 7 |
上市 虚空 setAge(整型 年龄) 抛出 InvalidAgeException{ 如果(年龄 < 18) 扔 新 InvalidAgeException(“雇员的年龄不能小于18岁”); 这个.年龄 = 年龄; } |
现在,我们已在main方法中使用try 抓住块来处理InvalidAgeException。