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

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

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

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

640閲覧

Fatal errorは出し続けても大丈夫か

terapro

総合スコア39

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2021/07/28 04:21

編集2021/07/28 04:24

いつもお世話になっております。

アマゾンSP-APIのスクリプト実行で下記のエラーがたまに出ます。

PHP Fatal error: Uncaught Error: Call to a member function getHeight() on null in /home/hoge/hogehoge/hage.php:65 Stack trace: #0 {main} thrown in /home/hoge/hogehoge/hage.php on line 65

毎日2000回ほど実行するため、途中で処理が止まらないようにbashで配列を作りphpファイルを叩くようにしています。
頻度としては50回に1回ほど上記のエラーがでますが、そのままスキップして処理を続けます。
VPSでCPU Usageなど見てますが、使用量も5%程度なのでさほどの影響はなさそうです。

このFatal errorを日本語に訳すと「致命的なエラー」ということになりますが、そもそもどこまで致命的なのでしょうか?
実行中の処理が停止しても、bashやcronで次の値を投入して9割方処理が完了すれば私的には問題ありません。

そもそもプログラミングの学習を始めたばかりの頃、whileでbreakを書かないと無限ループになり下手するとパソコンが壊れるという記事を見てエラーに慎重になったという経緯があります。

今ではエラーをどんどん出して、それを読んで修正というのを繰り返すようになり、エラーに対する抵抗感はだいぶ減りました。

なのですが、例えば上記のFatal errorをずっと吐き続けながら定期実行させるのは「致命的な何か」が起こるのか。
疑問に思い、質問をさせていただきました。

・OSに傷がつく。
・アマゾンから怒られる。

考えられるのは上記の2つぐらいですが、果たしてそんなことが起こり得るのかもよく分かっていません。
もちろん今後エラーは修正する予定ですが、このような運用をされている方はいらっしゃいますでしょうか?

識者のご意見、お待ちしております。

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

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

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

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

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

K_3578

2021/07/28 04:31

普通にエラー吐いてる以上確認すれば良いと思いますけど、 PHPのFatal errorは存在しない名前の関数を呼び出したりユーザー定義関数を二重に定義したりすると 発生します。 エラー文を適当に翻訳に掛けて読む限りは「メンバー関数 getHeight() の null での呼び出し。」 とのことなので、hage.php on line 65をとりあえず参照してみたらどうですかね。
guest

回答1

0

ベストアンサー

あくまでPHP文法上、または実行上の問題であることがほとんどで、挙げられたような2点は起き得ません。
もちろん実行不可能なエラーが出るようなコードである時点で何割okとか関係なく、アプリケーションとして致命的なので優先的に修正すべきかと。

投稿2021/07/28 05:29

m.ts10806

総合スコア80850

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

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

terapro

2021/07/28 06:00

ありがとうございます!
m.ts10806

2021/07/28 06:42

「エラーに対する抵抗感」はおそらく「エラーが出たところでパソコンが壊れるわけではない」と理解されつつあると思います。 無限ループも基本はタイムアウトされますし、メモリオーバーなど含めて大抵はPCへの直接負荷を避けるため処理中断されます。 「コンパイラ」という概念はおさえておいたほうが良いと思います。 構文エラーで処理中断されるのはそのためです。
terapro

2021/07/28 10:06

初学者の頃からいつも的確なコメントをいただき、大変に感謝しております。 おっしゃるとおり、むしろエラーを出して問題をつぶして行けるようにはなりました。 コンパイラ、ありがとうございます。 勉強させていただきます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問