質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.46%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1062閲覧

JavaScriptのエラーについて

takahashi-one

総合スコア119

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/04/20 16:24

編集2020/04/25 00:54

前提・実現したいこと

コードの作り手側の意図が知りたい。

発生している問題・エラーメッセージ

javascriptでanimationのコードを試していました。animationなので非同期のコードです。自分ではthrowなどのエラー処理は何もしていません。コードを実行していたらconsoleに赤字のエラーがでました。対象のコードをtry-catchで囲って、e.nameとe.messageでエラーの原因を見たのですがundefinedでした。console.log(e)でe自体を見ると下記のような配列の羅列でした。

javascript

1(200) [Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), Array(2), …]

普通は何かをthrowする場合、デバックするためにErrorオブジェクトを作成してエラーメッセージを返すと思います。しかしエラーメッセージはなく配列のみを返してるわけです。もしみなさんがアプリの開発者だとしたら、エラーメッセージを付けずに値のみを返すような場面が過去にあったでしょうか? あったとしたらそれはどのような意図でそのようなことをしたのでしょうか?
もちろん自分ではthrowはしていませんし、ライブラリはD3jsを使用しているのですが、D3jsのソースコードをダウンロードしてthrow部分を見たのですが値のみをthrowしている場所がありません。となるとJavaScript本体ということになるのですが。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/04/20 20:51

console.table() console.error() も試してみてください。
takahashi-one

2020/04/21 00:19

回答ありがとうございます。 console.error(e)のほうはconsole.log(e)と同じで、配列がズラーっと表示されます。 console.table(e)のほうは配列がテーブル表示されます。console.error(e)よりも配列の中身が見やすくなりました。 データが欠損しているとかはありませんでした。
AkitoshiManabe

2020/04/21 08:41

> ドロップダウンリストで種類を変更した時に1回だけエラー イベントリスナの記述に問題があるのでしょうけど、当該ソースが示されていない。メソッドチェーンを実現するライブラリ名が不明である。…など、「色々あるが察しろ」という無理難題になっています。条件は明記してください。
takahashi-one

2020/04/21 14:14

回答ありがとうございます。コードを追加しました。
takahashi-one

2020/04/22 06:26

回答ありがとうございます。マークダウン記法にしました
guest

回答1

0

ベストアンサー

エラーの原因が知りたい。
コードを実行していたらconsoleに赤字のエラーがでました

その時に示されるエラーメッセージとスタックトレースも確認してください。
エラー発生した箇所として 実行された関数、ファイル名、行、桁 が示されているはずです。

再帰呼び出しでアニメーションを実現しているのであれば、条件をつけて止める事も考えます。

let count = 0; // 繰り返し回数のカウンタ function plot(){ path.data(d1) .transition() .delay(1000) .duration(1500) .attr("d", area) .end() .then(() => { if(count++ < 3) // prot() の再帰を 3回に制限する。 plot(); }).catch((e) => { console.log(e); }) }

投稿2020/04/24 08:31

AkitoshiManabe

総合スコア5434

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takahashi-one

2020/04/24 12:41

回答ありがとうございます。ただ、質問にも書きましたが、 e.nameとe.messageともにundefinedです。 要するに try{ //code... }catch(e){ console.log(e); この表示が配列のみなのです。 } ご理解頂けたでしょうか。
takahashi-one

2020/04/25 07:18 編集

回答ありがとうございます。全部私が悪いのです。実は一番最初はもっと長い質問だったのです。これでは長すぎて誰も読んでくれないなと思い、だいぶカットしてしまいました。確かにこの質問ではアニメーションの途中でエラーがでているように、だったらアニメーションを止めてデバックできますよとなりますね。すいませんでした。ちょっと自分で考えてみます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問