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

Q&A

解決済

7回答

819閲覧

try文の前に1行入れる意味はなんでしょうか?

yuki1111

総合スコア73

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/06/24 14:38

編集2019/06/25 17:16

0

0

前にtry文の前に1行いれるのといれないのでは意味が変わると教わったのですが、
どのように意味が変わるのでしょうか?

try文の前に1行入れるよう指摘されたのは1年3カ月前で、職場で書いたソースなのでうろおぼえなのですが、下記のようなものでした

java

1 RestTemplate restTemplate = new RestTemplate(); 2 ResponseEntity<String> response; 3 4 try { 5 response = restTemplate.getForEntity("https://gturnquist-quoters.cfapps.io/api/random", String.class); 6 } catch(RestClientException rce) { 7 throw new Project1CommonException(rce); 8 }

java

1 ObjectMapper objectMapper = new ObjectMapper(); 2 3 try { 4 String json = objectMapper.writeValueAsString(response); 5 } catch(JsonProcessingException jpe) { 6 throw new Project1CommonException(jpe); 7 }

日本のgoogleで検索してもでてこないし、yahooUSAで検索しても検索しても参考になるようなものはでてきませんでした。
ここで質問してもでてこないなら、コーディング規約に引っかかってしまっただけかもしれません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

退会済みユーザー

退会済みユーザー

2019/06/24 15:17

その1行の違うコードを提示してください。 (意味の取り違えをなくするために)
m.ts10806

2019/06/25 00:28

>前にtry文の前に ”どれだけ前”、に”何”を入れるかによります。 コードを例示してください。
m.ts10806

2019/06/25 00:30

もし改行のことであれば何行入れたところでプログラムは読み飛ばすので関係ありませんし、極論、きちんと文末を;で置けば一行に全てのコードをおさめることもできます。
gentaro

2019/06/26 01:27

この質問文のコードのどちらが「try文の前に1行いれた」ものなんすか?(そしてその1行ってどれ?)
yuki1111

2019/06/26 11:27

gentaroさん try文の前の空行です。
guest

回答7

0

ここで質問してもでてこないなら、コーディング規約に引っかかってしまっただけかもしれません。

手元に環境作って実行してみればいいだけの話です。
コメントでも書きましたが何百行も改行入れたところで実行に影響はありませんし、1行にまとめても結果は同じです。

※下記はHello Worldを出力するだけの例

java

1public class Main {public static void main(String[] args) throws Exception {System.out.println("Hello World");}}

実行結果

そして「1年3カ月前」ですか。
その間放置した(というか放置”できた”)理由は何ですか?
ここで今更質問したところで実際の真意は指摘した人しか持っていません。
問題や疑問はその場で解決するのが基本です。

この内容を質問したところで「適度な改行を入れて読みやすくするためじゃない?」くらいの「感想」にしかなりませんよ。

「何とかして解決したい」のでしたら実際に指摘してくれた人をあらゆる手段を使って探し出して聞き出してください。(唯一出来るアドバイス)

投稿2019/06/26 00:52

編集2019/06/26 00:56
m.ts10806

総合スコア80896

yuki1111

2019/06/26 11:22

1年3カ月放置した理由は職場が変わった為、指摘してくださった人に質問する機会がなくなったからです。 その人は忙しそうだったし、他にも色々なことを指摘されたので(ユーティリティクラスのコンストラクタはprotectedにするようにとか、変数はnullで初期化しないように等々)、try文の件は放置してました。 またいつかその人と会う機会があればきいてみます。(恐らくないと思いますが)
guest

0

たぶんですけど、嘘を教わったか、勘違いされているかのどっちかです。

投稿2019/06/24 15:50

gentaro

総合スコア8947

0

ベストアンサー

はっきり言って、「読みやすくなる」以外の意味を感じません。
少なくともプログラム上では、他の方の回答の通り、空行がtryの前に何行入ろうが関係ありません。
職場内で「意味が変わる」と言われたのだとしたら、その職場内のローカルルールという可能性以外考えられません(空行がない場合と空行がある場合とで何らかの意味の差異を設定しているということ)。

投稿2019/06/25 17:58

swordone

総合スコア20675

yuki1111

2019/06/26 11:22

ありがとうございます。 多分ローカルルールなんだとおもいます。
guest

0

はっきり言って、わかりません。

たぶん、言った人の経験やコーディング規約等からきていると思いますので
「意味が変わる」と言った人に聞くが、確実な回答と思います。

画面を放置している状態で回答したので
すでに解決済みでしたね。

投稿2019/06/26 11:35

編集2019/06/26 11:55
ai_2013_dev

総合スコア338

0

まさか...まさかとは思うが...変数やオブジェクトのこと...?
あり...ありえない...が...(自称)初心者って他力本願なところがあるから...マジでありそう...

Java

1int a; // <- これ? 2try{ 3 // ここで例外が投げられる可能性がある処理 4}catch(int e){ 5 // ここで例外をキャッチ 6}

さすがに、入門書、しかも、前半の「変数」が理解できていれば引っかかることはない問題。

それとも、別の意味?

コードもないので、何のことを言っているのか不明。


[追記0]

それとも、

Java

1int a = 1 + 3; // <- これ? 2try{ 3 // ここで例外が飛んでくる可能性がある 4}catch( int e ){ 5 // ここで例外 6}

みたいに、「なんでint a = ... をtryより上に書いているか」ですか?

それは書く人のくせでしょうね。

メリットはそんなにないよ?

せいぜい例外が飛んでいようが関係なく処理する。ってだけ。
でもtryの中に書いても大体同じだし。

投稿2019/06/25 05:29

編集2019/06/25 05:44
BeatStar

総合スコア4962

退会済みユーザー

退会済みユーザー

2019/06/25 23:56

やはり最初のか
guest

0

try文の前に1行入れるよう指摘された

理由があるとすれば、tryというたった3文字の短い命令文でif文やfor文のような条件文もないので、見落としやすいぐらいですかね...

1つの関数に100行とか書かなければならない場合はi行の改行だけで可読性が違うので入れますが、そんなに長くない20行程度の関数では入れない事が多いですね...

投稿2019/06/26 01:22

stdio

総合スコア3307

stdio

2019/06/26 01:30

低評価をした理由が知りたいのですが...
gentaro

2019/06/26 01:42

ちょっと気に入らないだけで低評価押す人もいるから気にしたら負けでは。 個人的に気になるのは「20行程度」"も"あれば可読性を考慮しない、という選択肢はないと思いましたけど。(4,5行程度ならわからんでもないですが)
stdio

2019/06/26 02:33 編集

はぁ、貴方にとっては20行程度"も"なんですね。普段、一関数で4000行とかあるソースばかりを見ている為か20行程度ならまだマシなんですよね...
gentaro

2019/06/26 02:40

20行ある関数がダメなわけでなく、基本的には常に可読性を考えるべきだ、というだけの話です。 まぁ4000行ある関数とか可読性どころか保守性もなにも考えてなさそうだからハナから論外ですけど、世の中にはそういうコードが有ることぐらいは知ってるし、嫌々ながらもメンテしたことはあります。 ただ、クソはどう頑張ってもクソなので、それと比較して「あるべき論」がブレることがないだけです。
stdio

2019/06/26 02:48

貴方の言う「あるべき論」というのがどのようなものかは分かりませんが、それについて意見が割れると収集つかなくなるのでやめましょう。私は低評価をした理由が知りたかっただけですのでね。
Zuishin

2019/06/26 03:00

低評価していませんが、try が短いから見落としやすいという意味がわかりません。 三文字ばかりの中にあるなら見落としやすいかもしれませんが、10 文字 20 文字の中にある 3 文字は目立つと思います。 また try は予約語なので、たいていのエディタではフォントを変えて表示する設定があると思いますし、実際予約語はフォントを変えているテーマが多いのではないかと思います。 さらに try の後にはブロックが続くことが多いので、そこでインデントが入り、更に見落としにくくなるはずです。 どのようなソースだと try を見落としやすくなるのか、まったくイメージがわきません。
yuki1111

2019/06/26 11:32

見落としやすかったからという可能性もありますね。なるほど。
guest

0

try文はブロック内の処理で例外が発生しているかどうか検知してくれる文の事です。
なのでtry文の前に1行改行を入れたとしてもブロック外なのでtry文に影響はありません。

強いて言うならtry文とその前の処理の間に空行を入れる事で処理の流れが見えやすくなる事でしょうか。
ただ何にせよ意味自体は変わりませんので間違えて覚えないよう気を付けて下さいね。

投稿2019/06/24 14:44

marurunn

総合スコア702

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問