Не могу сделать сообщение об ошибке для пользователей dm discord.js

Я попытался поставить ошибку перехвата, если пользователь не получил сообщение, но по какой-то причине я получаю сообщение об ошибке

    client.on('guildMemberAdd', member => {
    const linkId = pool.createLink(member.id);
    const embed = new Discord.MessageEmbed()
        .setTitle('reCAPTCHA Verification')
        .setDescription(`To gain access to this server you must solve a captcha. The link will expire in 15 minutes.\nhttp://${domain == '' ? 'localhost:8050' : domain}/verify/${linkId}`)
        .setColor('YELLOW');
    member.send(embed)

} catch (e) {
    console.info(`Error adding role to user ${discordId}.`)
}

получить ошибку отсутствия "," добавил "," }, catch (e) { а затем я получаю ожидаемое выражение аргумента.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
74
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Проблема

Ошибка, вероятно, связана с тем, что ваш код вообще неправильно отформатирован? У вас есть функция member => {}, а затем у вас есть catch сразу после функции, и вы даже не закрываете скобки client.on().

Ваша программа правильно понимает совершенно неправильный синтаксис так же невозможно, как говорить тарабарщину кому-то, кто говорит на другом языке, и ожидать, что они поймут вас. При изучении нового языка вам необходимо знать о новых правилах грамматики, словарном запасе и многом другом, которые могут сильно отличаться от вашего родного языка. Это относится и к языкам программирования; javascript очень гибкий, но ваша программа не сможет расшифровать чрезвычайно неточный синтаксис (что эквивалентно тарабарщине для программы).

Пожалуйста, попробуйте узнать больше об операторах try/catch, функциях javascript, синтаксических ошибках и правильном синтаксисе. Это чрезвычайно простая проблема с форматированием, и такие вопросы действительно не должны присутствовать в StackOverflow. Просмотр некоторых базовых руководств по javascript, быстрое исследование (возможно, даже просмотр некоторых примеров ботов) и/или выполнение одного поиска в Google могли бы решить вашу проблему за считанные секунды.

Решение

Это правильный, более точный синтаксис:

client.on('guildMemberAdd', member => {
    const linkId = pool.createLink(member.id);
    const embed = new Discord.MessageEmbed()
    .setTitle('reCAPTCHA Verification')
    .setDescription(`To gain access to this server you must solve a captcha. The link will expire in 15 minutes.\nhttp://${domain == '' ? 'localhost:8050' : domain}/verify/${linkId}`)
    .setColor('YELLOW');
    member.send(embed).catch(() => {console.info("Couldn't send message.")});
});

Это, конечно, при условии, что форматирование было реальной проблемой, и вы не просто плохо отформатировали его при добавлении кода к своему вопросу. Если он был плохо отформатирован в вашем вопросе и правильно отформатирован в вашем фактическом коде, то проблема даже не присутствует в предоставленном вами коде (в этом случае на ваш вопрос нельзя даже ответить, если вы не предоставите правильный код).

все еще получает ошибку, когда пользователи блокируют dms с сервера

Tired 20.12.2020 23:27

Оператор catch этого ответа должен перехватывать ошибку, когда пользователи заблокировали DM.

Cannicide 21.12.2020 14:48

я получаю сообщение об ошибке

 DiscordAPIError: Cannot send messages to this user
    at RequestHandler.execute (C:\Users\Administrator\Desktop\GRPIL-BOT\src\DiscordVerification-master\DiscordVerification-master\node_modules\discord.js\src\rest\RequestHandler.js:154:13)
    at processTicksAndRejections (node:internal/process/task_queues:93:5)
    at async RequestHandler.push (C:\Users\Administrator\Desktop\GRPIL-BOT\src\DiscordVerification-master\DiscordVerification-master\node_modules\discord.js\src\rest\RequestHandler.js:39:14) {
  method: 'post',
  path: '/channels/790342794140975115/messages',
  code: 50007,
  httpStatus: 403
}

который

try {
        const linkId = pool.createLink(member.id);
        const embed = new Discord.MessageEmbed()
        .setTitle('reCAPTCHA Verification')
        .setDescription(`To gain access to this server you must solve a captcha. The link will expire in 15 minutes.\nhttp://${domain == '' ? 'localhost:8050' : domain}/verify/${linkId}`)
        .setColor('YELLOW');
        member.send(embed)

    } catch (e) {
        console.info(`Error adding role to user ${discordId}.`)
    }

следует избегать ошибки

Это не ответ. Не ответ, обновите свой вопрос.

myeongkil kim 21.12.2020 10:14

Другие вопросы по теме

Похожие вопросы