teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

英文法上の解釈

2017/03/28 14:57

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -1,2 +1,22 @@
1
1
  throw: メソッドの**中**で、例外を投げる命令キーワード
2
+ ```java
3
+ public void method() {
4
+ try {
5
+ // 例外を"投げろ"
6
+ throw new Exception();
7
+ } catch (Exception e) {
8
+ e.printStackTrace();
9
+ }
10
+ }
11
+ ```
12
+
2
- throws: メソッドの**宣言**で、この例外を投げる可能性があるという宣言
13
+ throws: メソッドの**宣言**で、この例外を投げる可能性があるという宣言
14
+ ```Java
15
+ //英語として解釈するなら、throwsの前の関係代名詞whichが省略されているとみて、
16
+ //Exceptionを"投げる"method
17
+ public void method() throws Exception {
18
+ throw new Exception();
19
+ }
20
+ ```
21
+
22
+ throws宣言によりcatchすべき検査例外が呼び出し側からわかるため、そのようなメソッドはtry-catchで囲まなければコンパイルエラーになる