- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章如何区分JAVA中的throws和throw由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
throws和throw:
throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁.
throw:则是用来抛出一个具体的异常类型.
分别介绍
throws在方法后边声明异常,其实就是自己不想对异常做出任何的处理,告诉别人自己可能出现的异常,交给别人处理,
注意:方法名后面跟上 throws Exception 证明这个方法里的语句可能会发生异常,注意是可能!在别处如果调用这个方法时,就必须也抛出异常或者用try catch 处理。 throws是可以单独使用的.
eg:(代码示例01) 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public
class
Test {
public
static
void
main(String[] args)
throws
Exception {
Test test =
new
Test();
/*** 调用的方法里抛出了异常,依然要调用的2种方式
* 1、继续声明异常(此代码块儿为本方式)
* 2、用try catch 代码块包住 test.compute()
*/
test.compute();
}
public
void
compute()
throws
Exception{
System.out.println(
"我可能发生异常"
);
System.out.println(
"3/0的值为"
+
3
/
0
);
}
}
|
eg:(代码示例02) 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
public
class
Test {
public
static
void
main(String[] args){
Test test =
new
Test();
/*** 调用的方法里抛出了异常,依然要调用的2种方式
* 1、抛出异常
* 2、用try catch 代码块包住 test.compute()进行捕获并解决异常(此代码块儿为此方式)
*/
try
{
test.compute();
}
catch
(Exception e) {
e.printStackTrace();
System.err.println(
"除数不能为0"
);
}
}
public
void
compute()
throws
Exception{
System.out.println(
"我可能发生异常"
);
System.out.println(
"3/0的值为"
+
3
/
0
);
}
}
|
throw:就是自己处理一个异常,有两种方式要么是自己捕获异常try...catch代码块,要么是抛出一个异常(throws 异常) 。
eg(代码示例01):
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
29
30
31
32
33
34
35
36
|
package
Exception005.usuallyWrong.usuallyWrong01;
import
java.util.Scanner;
/**
* 方式1:方法后未加throws Exception,在代码块儿中使用try-catch进行捕获异常,在if选择结构中加入throw,实现了手动异常,方式2:调用方法时继续声明该异常
*/
public
class
ByoneselfThrow {
String name;
String sex;
int
age;
public
void
byoneself(){
Scanner input=
new
Scanner(System.in);
System.out.println(
"请输入你的姓名:"
);
name=input.next();
System.out.println(
"请输入你的年龄:"
);
age=input.nextInt();
System.out.println(
"请输入你的性别:"
);
sex=input.next();
try
{
if
(
"男"
.equals(sex)||
"女"
.equals(sex)){
System.out.println(
"我的名字叫"
+name+
",年龄为"
+age+
",性别为"
+sex);
}
else
{
throw
new
Exception(
"性别只能是男/女!"
);
}
}
catch
(Exception e){
e.printStackTrace();
}
}
}
class
Test{
public
static
void
main(String[] args) {
ByoneselfThrow center=
new
ByoneselfThrow();
center.byoneself();
}
}
|
eg(代码示例02):
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
29
30
31
32
33
34
35
36
37
38
|
package
Exception005.usuallyWrong.usuallyWrong01;
import
java.util.Scanner;
/**
* 方式1:方法后加throws Exception(声明异常),在if选择结构中加入throw(手动抛出异常),在调用方法时使用try-catch进行捕获并解决异常,实现了手动异常
* 方式2:调用方法时继续声明该异常
*/
public
class
ByoneselfThrow {
String name;
String sex;
int
age;
public
void
byoneself()
throws
Exception{
Scanner input=
new
Scanner(System.in);
System.out.println(
"请输入你的姓名:"
);
name=input.next();
System.out.println(
"请输入你的年龄:"
);
age=input.nextInt();
System.out.println(
"请输入你的性别:"
);
sex=input.next();
if
(
"男"
.equals(sex)||
"女"
.equals(sex)){
System.out.println(
"我的名字叫"
+name+
",年龄为"
+age+
",性别为"
+sex);
}
else
{
throw
new
Exception(
"性别只能是男/女!"
);
}
}
}
class
Test{
public
static
void
main(String[] args) {
ByoneselfThrow center=
new
ByoneselfThrow();
try
{
center.byoneself();
}
catch
(Exception e) {
e.printStackTrace();
}
}
}
|
eg(代码示例03):
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
29
30
31
32
33
34
35
36
37
38
39
|
package
com.xinkaipu.Exception;
public
class
TestThrow
{
public
static
void
main(String[] args)
{
try
{
//调用带throws声明的方法,必须显式捕获该异常
//否则,必须在main方法中再次声明抛出
throwChecked(-
3
);
}
catch
(Exception e)
{
System.out.println(e.getMessage());
}
//调用抛出Runtime异常的方法既可以显式捕获该异常,
//也可不理会该异常
throwRuntime(
3
);
}
public
static
void
throwChecked(
int
a)
throws
Exception
{
if
(a >
0
)
{
//自行抛出Exception异常
//该代码必须处于try块里,或处于带throws声明的方法中
throw
new
Exception(
"a的值大于0,不符合要求"
);
}
}
public
static
void
throwRuntime(
int
a)
{
if
(a >
0
)
{
//自行抛出RuntimeException异常,既可以显式捕获该异常
//也可完全不理会该异常,把该异常交给该方法调用者处理
throw
new
RuntimeException(
"a的值大于0,不符合要求"
);
}
}
}
|
总结:
throws可以单独使用,throw不可以,必须搭配try catch,或者throws,若程序执行到throw exception 语句,则后面的语句不会再执行.
以上就是如何区分JAVA中的throws和throw的详细内容,更多关于JAVA中的throws和throw的资料请关注我其它相关文章! 。
原文链接:https://www.cnblogs.com/liangbaolong/p/12883613.html 。
最后此篇关于如何区分JAVA中的throws和throw的文章就讲到这里了,如果你想了解更多关于如何区分JAVA中的throws和throw的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我一直认为“throw”和“throw ex”的区别was that throw alone wasn't resetting the stacktrace of the exception. 不幸的
我需要处理这样的api错误代码,并为某些状态代码抛出错误。但是遵循代码显示了以上错误。我怎样才能做到这一点? func login(data: [String: Any], completion: @
我见过在 JavaScript 中抛出错误的 3 种不同方式: throw 'message'; throw Error('message'); throw new Error('message');
这个问题在这里已经有了答案: Exception handling : throw, throws and Throwable (8 个答案) 关闭 10 年前。 谁能简单介绍一下Java异常处理中
这是我的代码: func loadData() { ref.child(currentUserID!).observe(.childAdded) { (snapshot) in
可能很明显,但是我仍然无法理解throw和rethrow之间的区别,什么时候应该使用它们中的任何一个? 最佳答案 根据Effective Dart: If you decide to rethrow
这个问题在这里已经有了答案: "new" keyword in Scala (3 个答案) 关闭 5 年前。 在 Scala 中进行一些函数式编程,并且来自 Java 背景,我倾向于像这样抛出异常:
我有一个验证输入字符串的代码,如果输入字符串与所需的格式不匹配,我需要抛出 IllegalArgumentException,有多个字段,每个字段都有一组不同的验证条件,因此对于当前我正在执行的每个字
我的方法有一个抛出 NullPointerException 的返回类型。 public class Student { public String studentOne() {
有些帖子询问这两者之间的区别。 (为什么我要提这个...) 但我的问题在某种程度上有所不同,我在另一个错误神级处理方法中调用了“throw ex”。 public class Program {
谁能解释一下 throw、throws 和 Throwable 之间的区别以及何时使用哪个? 最佳答案 throws :在编写方法时使用,声明有问题的方法抛出了指定的(检查的)异常。 与检查的异常相反
我想知道编写异常收件箱和发件箱是否会改变特定程序的行为,例如 抛出 MyException(); 和 抛出(我的异常()); 我的代码: #include #include using names
抛出异常时,保留堆栈跟踪是最常见的期望行为,在 Java 中,这可以通过 throw ex; 获得,但在 C# 中,throw; 必须使用。 (另请注意,许多 C# 程序员经常错误地使用 throw
这个问题在这里已经有了答案: Exception handling : throw, throws and Throwable (8 个答案) 关闭 8 年前。 谁能举个例子说清楚Java异常处理中
这两个有什么区别吗? 最佳答案 异常是针对程序逻辑中的错误。 JVM 使用错误来表示环境有问题,例如 OutOfMemoryError 或 IncompatibleClassChangeError。
我试图到处寻找这个问题的答案,但似乎我运气不好。 我有一个非常简单的 Mongoose 模型 var userObject = { profile: { username: {
我遇到了这个重新抛出的异常,我很惊讶它甚至可以编译。 } catch(SomeException e) { ... throw(e); } 这个throw()和平时用的有什么区别吗?.
想象两段相似的代码: try { [...] } catch (myErr &err) { err.append("More info added to error..."); throw
我试图弄清楚Java中方法签名中的抛出和抛出语句之间的区别。方法签名中的抛出如下: public void aMethod() throws IOException{ FileReader f
这个问题在这里已经有了答案: throw Error('msg') vs throw new Error('msg') (2 个回答) 24 天前关闭。 没有 new 时抛出错误有什么缺点吗?关键词?
我是一名优秀的程序员,十分优秀!