Кажется, что ваша конфигурация использует опцию print
для numpy.seterr
:
>>> import numpy as np
>>> np.array([1])/0 #'warn' mode
__main__:1: RuntimeWarning: divide by zero encountered in divide
array([0])
>>> np.seterr(all='print')
{'over': 'warn', 'divide': 'warn', 'invalid': 'warn', 'under': 'ignore'}
>>> np.array([1])/0 #'print' mode
Warning: divide by zero encountered in divide
array([0])
Это означает, что предупреждение, которое вы видите, не является реальным предупреждением, но это всего лишь некоторые символы, напечатанные на stdout
(см. документацию для seterr
). Если вы хотите его поймать, вы можете:
numpy.seterr(all='raise')
, который будет напрямую возбуждать исключение. Это, однако, изменяет поведение всех операций, поэтому это довольно большое изменение в поведении. numpy.seterr(all='warn')
, который преобразует печатное предупреждение в реальное предупреждение, и вы сможете использовать выше, чтобы локализовать это изменение в поведении. Как только у вас есть предупреждение, вы можете использовать модуль warnings
для управления обработкой предупреждений:
>>> import warnings
>>>
>>> warnings.filterwarnings('error')
>>>
>>> try:
... warnings.warn(Warning())
... except Warning:
... print 'Warning was raised as an exception!'
...
Warning was raised as an exception!
Внимательно прочитайте документацию для filterwarnings
, поскольку она позволяет фильтровать только предупреждение, которое вы хотите, и имеет другие параметры. Я также хотел бы рассмотреть catch_warnings
, который является менеджером контекста, который автоматически сбрасывает исходную функцию filterwarnings
:
>>> import warnings
>>> with warnings.catch_warnings():
... warnings.filterwarnings('error')
... try:
... warnings.warn(Warning())
... except Warning: print 'Raised!'
...
Raised!
>>> try:
... warnings.warn(Warning())
... except Warning: print 'Not raised!'
...
__main__:2: Warning:
Достаточно, чтобы быть дублированным из Android Studio 3.2 Сгенерированный java , но путь немного изменился:
app / build / generate / not_namespaced_r_class_sources / developDebug / processDevelopDebugResources / r / your / project / package / R.java
blockquote>Путь не будет доступен из Android Studio, вместо этого он доступен из диспетчера файлов вашей ОС (в вашем случае Explorer) [113 ]
Запустите чистый проект, и путь должен появиться.