不和ボットのクラッシュを防ぐ(mysql)

IvailoM。

私は不和ボットを持っていて、mysqlデータベースからのキャラクターに関する情報を(キャラクター名を提供することによって)表示するコマンドに取り組んでいます。正常に動作しますが!characterinfo asdasfefcdce、のようデータベースに存在しない名前を指定すると、ボットがクラッシュします。だから私の質問はHow do I prevent it from crashing if I provide a wrong name?です。うまくいけば、あなたは私の意味を理解しています。

コードは次のとおりです。

const Discord = require('discord.js');
const mysql = require('mysql');
const {stripIndents} = require("common-tags");
const { prefix, token } = require('../config.json');

module.exports.run = async (bot, message, args, connection3) => {

    if (message.content == '!characterinfo') {
        return message.reply('provide a character name!');
    }

    const name = args[0];

    connection3.query('SELECT * FROM characters WHERE name = ?', [name], function(err, results, rows) {
        if (err) throw err;

    const embed = new Discord.RichEmbed()
    .setColor('RANDOM')
    .setTitle('**Character Information**')
    .addField('Nickname:', results[0].name)
    .addField('Level:', results[0].level)
    .setFooter(`test`)

    .setTimestamp();

     message.channel.send(embed);
  });

}

module.exports.help = {
    name: "characterinfo",
}

詳細情報を提供する必要がある場合は、お知らせください。

どんな助けでも大歓迎です!

トーマス・ライヒマン

この行では、ボットがクラッシュします。

if (err) throw err;

エラーをスローして後で処理しない場合、これを変更する最も簡単な方法は、throwをconsole.logまたはconsole.errorに置き換えることです。

if (err) console.error(err);

または、スローを維持して、try / catchでコードをラップすることもできます。

try {
    connection3.query('SELECT * FROM characters WHERE name = ?', [name], function (err, results, rows) {
        if (err) throw err;

        const embed = new Discord.RichEmbed()
            .setColor('RANDOM')
            .setTitle('**Character Information**')
            .addField('Nickname:', results[0].name)
            .addField('Level:', results[0].level)
            .setFooter(`test`)
            .setTimestamp();

        message.channel.send(embed);
    });
} catch(err) {
    // Handle the error ...
    console.log(err)
}

編集:したがって、エラーは、クエリが結果を見つけられないときにエントリがない結果配列から実際に発生しているため、このソリューションは機能するはずです。

他のことをする前に、「結果」があるかどうかを確認する必要があります。

try {
    connection3.query('SELECT * FROM characters WHERE name = ?', [name], function (err, results, rows) {
        if (err) throw err;
        if (!results[0]) return;

        const embed = new Discord.RichEmbed()
            .setColor('RANDOM')
            .setTitle('**Character Information**')
            .addField('Nickname:', results[0].name)
            .addField('Level:', results[0].level)
            .setFooter(`test`)
            .setTimestamp();

        message.channel.send(embed);
    });
} catch(err) {
    // Handle the error ...
    console.log(err)
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Rstudioがクラッシュするのを防ぐ方法は?

xmlhttpリクエストのキャッシュを防ぐ

ネットワークフラッターから画像をキャッシュするのを防ぐ方法は?

QtでQMainWindowを閉じた後のクラッシュを防ぐ方法は?

クラッシュしないように不和ボットの権限を確認してください

クライアントがクラッシュしたときにトランザクションのデッドロックを防ぐ方法は?

uncaughtErrorEventでアプリがクラッシュするのを防ぐ方法

パテのスクリーンでベルフラッシュを防ぐ

リストビューのキャッシュを防ぐ方法

リストビューのキャッシュを防ぐ方法

コーディングしてクラッシュを防ぐ

phpサイトのブラウザキャッシュを防ぐ方法

バックスラッシュをスラッシュに置き換えるBashスクリプトのAppcmd、防ぐ方法は?

ベンチマークの変動を防ぐためにキャッシュをフラッシュする

トランザクションC#での更新を防ぐSQLServerロック

Dioエラー後にフラッターアプリがクラッシュするのを防ぐ方法は?

リサイクラービューの空のリストが原因でAndroidアプリがクラッシュするのを防ぐ方法は?

前のアクティビティを返す際のクラッシュを防ぐ方法は?

アプリケーションのクラッシュを引き起こす例外を防ぐ方法は?

19回目の実行でプログラムがクラッシュするのを防ぐ方法は?

Qtネットワーククラスでシャットダウンの競合状態を防ぐ方法

クラッシュを防ぐためにメモリ内のビデオの影響を減らします

tvOS:TabBarとUICollectionViewの間のフォーカス変更を処理し、クラッシュを防ぐ方法

NSKeyedUnarchiver.decodeObjectのクラッシュを防ぐための迅速な唯一の方法は?

コントローラーの $location がハッシュを変更するのを防ぐ方法

変数ラベルの自動作成を防ぐスラッシュ

デプロイ中のherokuプッシュエラーでボットを不和にする

アプリがクラッシュするのを防ぐためのグローバルな方法は?

文字列が空のときにアプリがクラッシュするのを防ぐ方法

TOP 一覧

  1. 1

    Python / SciPyのピーク検出アルゴリズム

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  4. 4

    androidsoongビルドシステムによるネイティブコードカバレッジ

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    Reactでclsxを使用する方法

  7. 7

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  8. 8

    二次導関数を数値計算するときの大きな誤差

  9. 9

    Ansibleで複数行のシェルスクリプトを実行する方法

  10. 10

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  11. 11

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  12. 12

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  13. 13

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  14. 14

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  15. 15

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  16. 16

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    Rパッケージ「AppliedPredictiveModeling」のインストール中にエラーが発生しました

  20. 20

    画像変更コードを実行してもボタンの画像が変更されない

  21. 21

    好き/愛の関係のためのデータベース設計

ホットタグ

アーカイブ