Как пропустить предупреждения в цикле [wolfram-mathematica]

Моя цель - прочитать данные обо всех доступных акциях на NASDAQ, используя FinancialData[], и сделать некоторые вычисления на них. Проблема в том, что (я уже связался со службой поддержки из-за этого, и это известная проблема), что если я использую

Slist = FinancialData["NASDAQ:*", "Lookup"];

прочитать все доступные символы тикера, а затем

Dlist = FinancialData[#] & /@ Slist;

чтобы загрузить текущую цену на рынке, это не работает для всех записей из-за ошибок в базе данных, и Mathematica выдает несколько предупреждений в виде:

NASDAQ:AAMALX is not a known entity, class, or tag for FinancialData.  
Use FinancialData[] for a list of entities.

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

Даже краткий намек на направление, на которое я должен смотреть, уже очень помог бы. Я использую Mathematica 10 на Mac.

1 ответ

Решение

Использование Quiet чтобы подавить предупреждающие сообщения, затем выберите количество случаев.

Slist = FinancialData["NASDAQ:*", "Lookup"];
Dlist = Cases[Quiet[{#, FinancialData[#]} & /@ Slist], {_, _?NumberQ}]
Другие вопросы по тегам