Не могу сделать сообщение об ошибке для пользователей 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) { а затем я получаю ожидаемое выражение аргумента.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
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

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

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