Вопросы с тегами [try-catch]

1

голосов
1

ответ
80

Просмотры

How to get rid of NumberFormatException in the following program?

A program to accept an array of integers and another array of symbols and to *calculate and display the result after performing the operations using the *symbols. example: int Arr[]={1,2,3,4} String Sym[]={"+","/","*"} Result is 4. *[((1+2)/3)*4] This is what I did. import java.util.*; public class Array { public static void main(String args[]) { Scanner sc=new Scanner(System.in);int c=0; System.out.println("Enter the size of the array:"); int l=sc.nextInt(); int m[]=new int[l]; String n[]=new String[l-1]; String s[]=new String[l]; System.out.println("Enter the integers"); for(int i=0;i
Niya Shameer
1

голосов
2

ответ
27

Просмотры

Continuing Execution after Exception found

I am making a small program to insert from a text document into a database. I used a hashmap to get the values from the text document because I do not want to use arrays and the text document is in format Key:value. At the moment my code inserts correctly but when an exception is found the program ends at the point of the exception. My goal is to make it run even after an exception is found, it won't necesarrily ignore it but I want to keep executing regardless. BufferedReader reader = null; try { reader = new BufferedReader(new FileReader( "C:\\Users\\darroyo\\Documents\\pruebasx.txt")); } catch (FileNotFoundException e1) { e1.printStackTrace(); } String line; try { line = reader.readLine(); } catch (IOException e1) { e1.printStackTrace(); } String query = " insert into FRONTMC.HECHO (folio_hecho, folio_orden, emisora, serie," + "clave_sentido, titulos_hecho, precio, importe, liquidacion, contraparte, id_estatus, isin, contrato," + "secondary_exec_id, exec_id, F11_ClOrdID, fecha_recepcion, fecha_sentra)" + " values ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,convert(varchar(30),cast(? as datetime),120),convert(varchar(30),cast(? as datetime),120))"; PreparedStatement preparedStmt = null; try { preparedStmt = con.prepareStatement(query); } catch (SQLException e1) { e1.printStackTrace(); } Map hm1 = new HashMap(); try { while ((line = reader.readLine()) != null) { String[] tokens = line.split(""); for (int i = 0; i != tokens.length; i++) { int dataIndex = tokens[i].indexOf('=') + 1; String data = tokens[i].substring(dataIndex); hm1.put(new Integer(i),data); } for(int counter =0;counter
Curious George
1

голосов
1

ответ
69

Просмотры

Мне нужно проверить, если брошено исключение из оператора =?

Учитывая следующий код: шаблон класса A {T * обр; INT размер; общественности: А (размер INT): обр (новый Т [размер]), размер (размер) {} // .. & оператор = (Const & а) {если (это == & а) {вернуться * это; } Этом-> размер = a.size; Т * ар = новый Т [a.size]; для (INT I = 0; iarr; this-> обр = ар, возвращение * это;} // ...}; Когда я копировать элементы из данного массива, нужно ли мне сделать это с пунктом примерки улова или нет? это хорошая идея или нет?
Software_t
1

голосов
1

ответ
41

Просмотры

Кошмар - Я не могу поймать, какая строка кода дает мне ошибку с двумя или более .wait ()

Я с помощью Nightmare + Electron. Я не могу поймать, какая строка кода дает мне ошибку с двумя или более .wait (). Вот пример моего кода: попробуйте {Await this.nightmare .goto (userUrl) .wait ( 'продаж покадрово .private-флекс .uiDropdown__buttonCaret ') .click ('. Продаж покадрово .private-флекс .uiDropdown__buttonCaret') .wait ( 'таблицы строк.) .click (' продажи-контента таблицы .table-строка:. первый потомок .sales-контент- кнопка стол-действия'); } Задвижка (ERR) {console.log (ERR); } Нет измеритель, который .wait () не ошибаетесь это всегда дает мне это: Ошибка: .wait () истекло после 30000msec в Timeout._onTimeout (C: \ OSPanel \ домены \ ср-кошмар \ node_modules \ кошмар \ Lib \ действия. JS: 453: 10) при ontimeout (timers.js: 482: 11) при tryOnTimeout (timers.js: 317: 5) в Timer.listOnTimeout (timers.js: 277:
Sasha Stadnyk
1

голосов
0

ответ
67

Просмотры

Can't catch exception in C# with PdfMetamorphosis

Когда конвертировать DOCX в PDF с помощью PdfMetamorphosis, есть предупреждение: ArgumentOutOfRangeException было необработанное Необработанное исключение типа «System.ArgumentOutOfRangeException» произошло в mscorlib.dll Дополнительная информация: Индекс находился вне диапазона. Должно быть неотрицательным и меньше, чем размер коллекции. Код здесь: вар файлы = Directory.GetFiles (DataFolder, "* .docx"); Еогеасп (строка имя_файла в файлах) {попробуйте {//Console.ReadKey (); SautinSoft.PdfMetamorphosis р = новый SautinSoft.PdfMetamorphosis (); если (р = NULL) {строка docxPath = имя_файла; Строка pdfPath = Path.ChangeExtension (docxPath, ".pdf"); // Преобразовать файл DOCX в PDF-файл Int результат = р. DocxToPdfConvertFile (docxPath, pdfPath); если (результат == 0) {System.Console.WriteLine (Filename + "Конверсия удалось!"); //Console.ReadKey (); } Еще {System.Console.WriteLine (Filename + "Конверсия не удалось!"); //Console.ReadKey (); }}} {Улов продолжить; }} Исключение произошло в "Int результат = p.DocxToPdfConvertFile (docxPath, pdfPath);" и код разбился. Я хочу, чтобы поймать исключение, игнорировать его и продолжить цикл. Скриншот }}} {Улов продолжить; }} Исключение произошло в "Int результат = p.DocxToPdfConvertFile (docxPath, pdfPath);" и код разбился. Я хочу, чтобы поймать исключение, игнорировать его и продолжить цикл. Скриншот }}} {Улов продолжить; }} Исключение произошло в "Int результат = p.DocxToPdfConvertFile (docxPath, pdfPath);" и код разбился. Я хочу, чтобы поймать исключение, игнорировать его и продолжить цикл. Скриншот
李明浩
1

голосов
0

ответ
54

Просмотры

Вы можете Петля пробуем поймать блок в Swift?

Мой вопрос о лучшей практике вокруг зацикливания делает, попробуйте поймать блок. У меня есть кнопка входа в систему, которая выполняет проверку формы с помощью сделай, попробуйте поймать блок поймать недопустимые сообщения электронной почты и т.д., то он выполняет функцию сети. При ловле ошибки я отобразить UIAlertController. Если пользователь вводит что-то в форме, которая выдает ошибку, а затем корректирует себя запрос сети никогда не срабатывает, потому что была брошена ошибка. Простой пример кода: FUNC loginButtonPressed {делать {попробуйте someFormValidation ()} поймать {} LoginError.invalidEmail someNetworkingFunction ()} Мой вопрос: что это лучший / лучшая практика способ иметь петлю пользователя назад и вызвать Д.О., попробуйте, поймать блок с самого начала, так что, когда они получают это право запроса сети будет вызывать? Может быть, я вызвать некоторый код, когда они принимают и отклонить оповещение? Открыть услышать народы мысли.
Sam Davies
1

голосов
0

ответ
49

Просмотры

Как я могу проверить, если предоставленный пользователем PHP код действителен?

Как я могу проверить, если предоставленный пользователем PHP код действителен? В частности, у меня есть несколько PHP скриптов, которые пользователи могут редактировать через интерфейс по целому ряду причин. Если пользователи редактировать эти скрипты, как я могу проверить, что они обеспечивают силу и не врезаться, когда он на самом деле получает бежать? Я думал об использовании примерочных поймать блок вокруг всего кода, но еще одна проблема у меня есть, что, когда я тестирую кода пользователь предоставляет, я не хочу, чтобы на самом деле выполнить код, а код может вызвать изменения должны быть внесены в систему. Любые мысли будут весьма благодарны. Спасибо.
HartleySan
1

голосов
0

ответ
68

Просмотры

Nodejs: получение свойства не определены не выдаст ошибку

Я столкнулся странные проблемы в экспресс-приложения: ошибка не генерируется, при попытке получить свойство несуществующего объекта. У меня есть файл, с помощью этого кода: Const Bcrypt = требуется ( 'Bcrypt-nodejs'); Const hashPassword = асинхронной (пароль) => {Const bcryptGenSalt = util.promisify (bcrypt.genSalt); Const bcryptHash = util.promisify (bcrypt.hash); попробовать {константная соль = ждет bcryptGenSalt (10); Const хэш = ждать bcryptHash (пароль, соль, нуль) возвращает хеш; } Задвижка (ошибка) {ошибка броска; }} Module.exports = {hashPassword} Как вы можете видеть, я забыл требовать «Util» модуль nodejs. используя util.promisify должен выдавать ошибку «не может вызвать promisify неопределенных», или нечто подобное. Но ничего не происходит. Это изменение курса, если я поставил Util. promisify называют внутри блока примерки поймать, но от того, что я понимаю, он должен бросить ошибку, как сейчас. Это код, который потребляет эту функцию, в другом файл (контроллер): Const registerNewUser = асинхронный (REQ, Рез, следующий) => {сопз электронной почты = req.body.email; Const пароль = req.body.password; попробуйте {console.log ( «прежде чем пытаться хэш») // ЭТО ГДЕ ЖДЕТ Обещание возвращенного от «проблематичного» FUNCTION вара hashedPassword = жду hashPassword (пароль)} задвижка (ошибка) {возвращение res.send ({ошибка }); } Const пользователя = новый пользователь ({адрес электронной почты, пароль: hashedPassword}) попробуйте {сопз NEWUSER = ждут user.save (); res.json ({ошибка: нуль, данные: {ID: newUser._id}})} задвижка (ошибка) {res.status (422) Пошлите ({ошибка: ' E-mail уже занят' }); }} Ошибка не достигает блок улова, и программа продолжает работать, в результате чего нежелательного поведения. Может кто-нибудь объяснить, что здесь происходит? РЕШИТЬ: Проблема заключалась в том, что по какой-то причине, я получал пустую ошибку в моем ответ почтальона, заставляя меня думать, что не поймали никакой ошибки. Кажется, что все работает отлично, кроме того факта, что объект ошибки не лечится правильно, когда я действительно res.send ({ошибка}) ...
sheff2k1
1

голосов
1

ответ
26

Просмотры

Повышение скорости / производительности веб-соскоб с большим количеством исключений

Я написал несколько веб-соскоб код, который в настоящее время работает, однако довольно медленно. Некоторый фон: Я использую Selenium, как это требует несколько этапов щелчков и записи, вместе с BeautifulSoup. Мой код смотрит на список материалов в подкатегории на сайте (изображение ниже) и очищая их. Если материал соскабливают с веб-сайта является одним из 30 Меня интересует (LST ниже), то он записывает номер 1 в dataframe который я позже конвертировать в листе Excel. Причина это так медленно, я считаю, в любом случае, это связано с тем, что есть много исключений. Тем не менее, я не знаю, как справиться с этим, кроме попробовать / за исключением. Основные фрагменты кода можно увидеть ниже, как весь кусок кода довольно длинный. Я также прилагается изображение веб-сайта в вопрос для справки. LST = [» продолжить продолжить исключением IndexError: продолжают х = xrange (0,8) у = xrange (0,9) р = xrange (1,31) для сайта в р: site_scraper (сайт) В частности, I, J и редко идут до 6, 7 или 8, но когда они делают, это очень важно, что я захвачу эту информацию тоже. Для контекста, соответствуют двутавровых к числу различных категорий в изображении ниже (Аутомотив, строительных материалов и т.д.), в то время как J Представим подсписком (автомобильные аккумуляторы и масла в двигателе и т.д.). Поскольку эти две петли повторяются для всех 30 участков для каждого кода, и у меня есть 1500 кодов, это крайне медленно. В настоящее время он занимает 6,5 минут для 10 кодов. Есть ли способ, которым я мог бы улучшить этот процесс? Я попробовал список понимание, однако это не было трудно обрабатывать ошибки, как это и мои результаты были не точны. Может ли «если» функция будет лучшим выбором для этого, и если да, то как бы я включить его? Я также был бы рад приложить полный код, если это необходимо. Спасибо! EDIT: путем изменения кроме IndexError: продолжать, за исключением IndexError: разорвать его сейчас работает почти в два раза быстрее! Очевидно, что лучше всего, чтобы выйти из цикла после того, как он не раз, как и более поздние итерации также не будет. Однако любые другие вещие советов по-прежнему приветствуются :) путем изменения кроме IndexError: продолжать, за исключением IndexError: разорвать его сейчас работает почти в два раза быстрее! Очевидно, что лучше всего, чтобы выйти из цикла после того, как он не раз, как и более поздние итерации также не будет. Однако любые другие вещие советов по-прежнему приветствуются :) путем изменения кроме IndexError: продолжать, за исключением IndexError: разорвать его сейчас работает почти в два раза быстрее! Очевидно, что лучше всего, чтобы выйти из цикла после того, как он не раз, как и более поздние итерации также не будет. Однако любые другие вещие советов по-прежнему приветствуются :)
Ozdanny
1

голосов
0

ответ
54

Просмотры

GET in for loop needs to be faster (httr) in R

Мне нужно написать сценарий R, который посылает в конце огромного количества запросов GET к серверу. Каждая строка моего фрейма данных содержит различную информацию. В последнем столбце «URL» строит запросы HTTP в каждой строке - например: https: //logsxxx.xxx.com/xx.xx ..... Может случиться так, что я должен отправить 300,000 - 1.000.000 запрос GET с? сценарий. Хорошая вещь заключается в том, что мой скрипт работает и запросы достигают сервера. Плохо то, что цикл стоит много времени, пока все строки не будут посылать. Она занимает около 9 часов 300.000 строк. Я проверил, если его возможно с IfElse или применить, но мне не удалось ... system.time (для (я в 1: 300000) {попробуйте ({GET (MYDATA $ URL [я], тайм-аут (3600)) печать (паста ( "строка", я, "отправлен в", SYS.TIME ()))}, бесшумный = FALSE)}) Еще плохо то, что сценарий может не направит 100%, если в перерывах интернет-связи по какой-либо причине. Тогда можно видеть следующее сообщение об ошибке: [1] "строка 18, отправленной 2019-01-18 14:22:05" [1] "строка 19 отправлен на 2019-01-18 14:22:06" [1] " строка 20 отправлен на 2019-01-18 14:22:06" [1] "строка 21 отправлен в 2019-01-18 14:22:06" Ошибка в завиток :: curl_fetch_memory (URL, ручка = дескриптор): Тайм-аут был достиг: Тайм-аут соединения через 10000 миллисекунд [1] "23 строк отправлены на 2019-01-18 14:22:16" [1] "строка 24 отправлена ​​на 2019-01-18 14:22:16" [1] " строка 25 отправлено в 2019-01-18 14:22:16" по крайней мере, скрипт не ломается полностью и переходит к следующей строке. Проблема здесь, что чем дольше подключение к Интернету не удается, тем больше строк не будут посылать. Я был бы очень признателен, если:
RBasti
1

голосов
1

ответ
21

Просмотры

Python Исключение не печатает весь исключение

У меня есть словарь, который выглядит следующим образом: JS = { «значение»: { «загрузки»: { «задержка»: 0}}} Когда я запускаю следующую команду печати (JS [ «значение»] [ «загрузки»] [ «задержка»]) Я получаю 0 что поведение я ожидаю получить. Когда я бегу следующие печати (JS [ «значение»] [ «booooot»] [ «задержка»]) Я получаю исключение KeyError: «booooot», который также ожидается. Тем не менее, когда я обернуть все это в Try / за исключением и печать исключения, я не получаю ошибку, как я ожидал. Защиту MyFunc (JS): попробуйте: JS [ «значение»] [ «booooot»] [ «задержка»], за исключением Exception как е: печать (е) Я просто получить следующую строку в консоли «booooot» Я не должен получить KeyError : «booooot», как я сделал, когда я побежал печать за пределами попытки / за исключением блока?
ARL
1

голосов
2

ответ
95

Просмотры

Exception is not caught by the try catch block

Я спасаю DStream Кассандре. Существует столбец в Кассандре с картой типа данных. Cassandra не поддерживает нулевое значение в карте, но нулевое значение может иметь место в потоке. Я добавил попробовать поймать, если дело что-то пойдет не так, но программа остановилась, несмотря на это, и я не вижу сообщение об ошибке в журнале: попробуйте {cassandraStream.saveToCassandra ( «стол», «пространство ключей»)} поймать {случай е: Exception => log.error ( "Ошибка при сохранении данных в Кассандре" + e.getMessage, е)} Exception причиненном: java.lang.NullPointerException: значения Карта не может быть пустым в com.datastax.driver.core.TypeCodec $ AbstractMapCodec. сериализации (TypeCodec.java:2026) в com.datastax.driver.core.TypeCodec $ AbstractMapCodec.serialize (TypeCodec.java:1909) в com.datastax.driver.core.AbstractData.set (AbstractData.java: 109) в org.apache.spark.executor.Executor $ TaskRunner.run (Executor.scala: 345) ... еще 3 Я хотел бы знать, почему программа получила остановки, несмотря на блок Try / поймать. Почему исключение не поймали?
lucy
1

голосов
2

ответ
548

Просмотры

Повторное выбрасывание исключения в Android

Я разработка Android 2.2 приложения. Я хочу, чтобы поймать и снова бросать же исключение. Я хочу, чтобы это сделать, потому что я должен закрыть курсор перед выходом метода (а, наконец, заявление, не правда ли?) Могу ли я это? Как? Спасибо
VansFannel
1

голосов
2

ответ
227

Просмотры

Какое исключение делает Raise SMO Transfer?

При использовании этого кода попробовать {transfer.TransferData (); } Задвижка (SmoException smoex) {// Сделать что-то} поймать (Exception ех) {// Сделать что-нибудь еще} Исключение всегда перехватывается второе утверждение улова. Кто-то знает, почему это происходит? Заранее спасибо
Alexis Kalyvitis
1

голосов
1

ответ
173

Просмотры

Perl package error handling question

I have a package called "SamplePkg". I have another script that uses SamplePkg, creates an object and calls a method. package SamplePkg; use strict; use DBI; use Try::Tiny; my $dbh = DBI_>connect(..., { RaiseError => 1 }); sub new { my $self = {}; $self->{CODE} = 0; bless($self); return $self; } sub do_something { my $self = shift; try { my $query = "select myvalue from mytable"; $sth = $dbh->prepare($query); $sth->execute(); } catch { $self->{CODE} = 100; return; } $self->{CODE} = 50; } The other script use SamplePkg; my $object = SamplePkg->new(); $object->do_something(); print "Code is: $object->{CODE}\n"; Questions: For some reason, the try block doesn't catch the DB error (myvalue is not a valid column name) The "return" in the catch block does not return to the calling script The output gives the error code as 50
Chris
1

голосов
1

ответ
295

Просмотры

Изменение по умолчанию Try-Catch Имя переменной VB.NET 2010

Мне было интересно, если бы можно было изменить имя переменной по умолчанию, проявляющимся в автозавершения для Try-Catch блока. Он населяет как: Попробуйте Поймать экс Как исключение End Try Я хочу, чтобы это так заселяет как: Попытка поймать excError Как исключение End Try
Paul
1

голосов
2

ответ
740

Просмотры

как поймать, когда facebook вошел в мой сайт нашли ссылку на изображение?

Я хочу сообщить каждый раз, когда facebook принимает образ моего сайта и добавляет его к ссылке Как я поймать это событие? благодарю вас.
user1057679
1

голосов
2

ответ
1.4k

Просмотры

java io catching exception

I am getting this error: bill value:$ 0.10 bill value: $0.05 bill value: $0.01 bill value: $100.00 Exception in thread "main" java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at ReadMoney.main(ReadMoney.java:12) ================== My code: //import java.util.Date; public class ReadMoney { public static void main(String argv[]) throws Exception { FileInputStream fis = new FileInputStream("money.out"); ObjectInputStream ois = new ObjectInputStream(fis); Object read; try { while ((read = ois.readObject()) != null) { if (read instanceof Bill) { System.out.println("bill value: " + read); } else if (read instanceof Quarter) { }// while else if (read instanceof Dime) { System.out.println("bill value:" + read); } else if (read instanceof Nickel) { System.out.println("bill value:" + read); } else if (read instanceof Penny) { System.out.println("bill value:" + read); } else if (read instanceof Bill) { System.out.println("bill value:" + read ); } Money quarter = (Money) ois.readObject(); System.out.println("Quarter: "+ quarter); System.out.println("Quarter: "+ quarter); Money dime = (Money) ois.readObject(); System.out.println("Dime:" + dime); Money nickel = (Money)ois.readObject(); System.out.println("Nickel:" + nickel); Money penny = (Money) ois.readObject(); System.out.println("Penny:" + penny); Money bill = (Money) ois.readObject(); System.out.println("Bill: " + bill); }// try } catch (IllegalBillException ibe) { System.out.println("End of file reached"); } ois.close(); fis.close(); }// main }// class I'm pretty sure my try and catch block is correct but my program is not printing the 2 quarters value and also the text saying "end of file reached" for some odd reason. =/
Nicholas Kong
1

голосов
1

ответ
5.7k

Просмотры

Wait 60 seconds then resend if Send-MailMessage failed Powershell

I have a script that sends an email if a task fails (SendMailErr). I would like to add in retrying to send the email if the previous send-mailmessage failed. I had tried to put it into a try catch finally loop within the function but it didn't work as expected. Here is my code $waitMail = 60 $sendErr = "Error Sending Email to SI Team: $_. Retrying in $waitMail minute(s)" function SendMailErr { $MessageParameters = @{ From = $from To = $to Subject = "ALERT: Backup Failed for $env:ComputerName.$env:USERDNSDOMAIN - $((Get-Date).ToShortDateString())" Body = $body | Out-String SmtpServer = $Smtp Priority = "High" Attachments = $attachments } try { Send-MailMessage @MessageParameters -EA Stop Exit } catch { Write-Log $sendErr Sleep $waitMail Send-MailMessage @MessageParameters Exit } finaly { Write-Log "Error: Unable to send email to SI Team" Exit } Any suggestions would be greatly appreciated. I'm sure there's a better way to structure it, my googling just hasn't found it yet. Thanks, Amelia I've figured this out in my own clumsy way... Thank you to the person that pointed out I had an Exit within the trap. The following works for me now function SendMailErr { $MessageParameters = @{ From = $from To = $to Subject = "ALERT: Backup Failed for $env:ComputerName.$env:USERDNSDOMAIN - $((Get-Date).ToShortDateString())" SmtpServer = $smtp Body = $body Priority = "High" } try { Send-MailMessage @MessageParameters -EA Stop; } catch { Write-Host $sendErr Sleep $waitMail Send-MailMessage @MessageParameters } Exit }
user1131196
1

голосов
1

ответ
877

Просмотры

Android File Read

package com.callout.project; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import com.callout.project.Mylocation.LocationResult; import android.app.Activity; import android.app.AlertDialog; import android.content.Intent; import android.location.Location; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class WorksActivity extends Activity { /** Called when the activity is first created. */ Mylocation myLocation = new Mylocation(); TextView rtv; String id; String strloc; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.register); Bundle ext = getIntent().getExtras(); id = (String) ext.get("registration_id"); Log.w("rid", id); findCurrentLocation(); rtv = (TextView)findViewById(R.id.rtv); rtv.setText("Thank you For Registering"); String eol = System.getProperty("line.separator"); BufferedReader input = null; try { input = new BufferedReader(new InputStreamReader( openFileInput("myfile"))); String line; StringBuffer buffer = new StringBuffer(); while ((line = input.readLine()) != null) { buffer.append(line + eol); Log.w("Hello","123"+line); } } catch (Exception e) { e.printStackTrace(); } finally { if (input != null) { try { input.close(); } catch (IOException e) { e.printStackTrace(); } } } //Log.w("file","msg"+line); // sendtoserver(id,strloc); } private void findCurrentLocation() { myLocation.getLocation(this, locationResult); } public LocationResult locationResult = new LocationResult() { @Override public void gotLocation(Location location) { // TODO Auto-generated method stub if (location != null) { strloc = location.getLatitude() + "," + location.getLongitude(); Log.w("works",strloc); // TODO Auto-generated method stub AlertDialog malert = new AlertDialog.Builder(WorksActivity.this).create(); malert.setTitle("here"+strloc); Log.w("func","in func"+id); HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://www.funnystrippers.co.cc/test.php"); try { List nameValuePairs = new ArrayList(4); nameValuePairs.add(new BasicNameValuePair("Rid", "56")); nameValuePairs.add(new BasicNameValuePair("location","strloc")); nameValuePairs.add(new BasicNameValuePair("content", "hello frm android")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); Log.w("res",response.toString()); } catch (ClientProtocolException e) { } catch (IOException e) { } malert.show(); } } }; } I have this following code which deals with the C2DM, its working fine , but i want the value of Log.w("Hello","123"+line); to be printed outside the try {} catch block when I do so it gives me error I should get the value printed in my LogCat !!!
gaurav
1

голосов
2

ответ
3.5k

Просмотры

Is that the best way to release SQLite connection in Java?

Мне нужен хороший способ закрыть SQLITE соединения в Java. После несколько внушения других пользователей, я решил добавить в свой код финально блока, чтобы быть уверенными, что закрытие операции всегда выполняются. публичный статический логический ExecuteQuery (Строка запроса) {Connection сопп = NULL; Заявление STMT = NULL; попробуйте {Class.forName ( "org.sqlite.JDBC"); Conn = DriverManager.getConnection (Global.dbPath); STMT = conn.createStatement (); stmt.execute (запрос); возвращает истину; } Задвижка (ClassNotFoundException е) {System.out.println (е); вернуться ложным; } Поймать (SQLException е) {System.out.println (е); вернуться ложным; } Наконец {попробовать {stmt.close (); conn.Close (); возвращает истину; } Поймать (SQLException ех) {System.out.println ( "Errore закрытия соединения"); вернуться ложным; }}} Я не уверен, что это самое лучшее решение. Как оптимизировать это для удобства чтения?
Luca
1

голосов
1

ответ
7.1k

Просмотры

RAISERROR от Выгода блока в TSQL Зачет для вызова Batch - нужно что Сдал на вызов приложения

Я исследовал блок TRY / CATCH и я немного тупик о том, как передать сообщение об ошибке, как мне нужно, чтобы сделать это. Из того, что я прочитал, и если я правильно понимаю, RAISERROR в CATCH блок в SQL будет передан вызывающей партии или вызывающего приложения. Приложение работает хранимую процедуру, которая имеет транзакции в нем. Транзакция завернутые в TRY / CATCH блока. В блоке CATCH, я поднимаю ошибку, если что-то в сделке терпит неудачу, заставляя его прыгать поймать. При выполнении процедуры через SSMS, ошибка показывает вверх штраф и откат транзакции. Однако, если приложение вызывает хранимую процедуру и возникает та же ошибка, приложение никогда не знает об ошибке и, таким образом, не сейчас процедура не удалась. Прежде всего, я правильно понять, как RAISERROR в CATCH работ? Если да, то как я могу получить эту ошибку поднятой назад к вызывающему приложению? НАЧАТЬ TRY НАЧАТЬ TRAN ............... COMMIT END TRY CATCH НАЧАТЬ ЕСЛИ @@ TRANCOUNT> 0 ОТКАТА ЗАЯВЛЯЮ @ErrMsg NVARCHAR (4000) ВЫБОР @ErrMsg = ERROR_MESSAGE () RAISERROR (@ErrMsg, 16, 1) END CATCH Я работающая под управлением Windows 7, SQL Server 2005
skailey
1

голосов
1

ответ
322

Просмотры

catching va_list error

Я в настоящее время, используя следующую функцию для печати моих отладочных строк: недействительный Script :: OutputDebugStringN (Const символа * формат, ...) {символа outstring [256]; MemSet (outstring, 0, SizeOf (outstring)); попробуйте {va_list Args = {0}; va_start (арг, формат); // арг = (va_list) (& формат + 1); vsprintf (outstring, формат, арг); va_end (арг); OutputDebugString (outstring); } Поймать (...) // скорее всего, ссылка Вэл ошибка Arg (va_list не поддерживает реф арг) {OutputDebugString ( "[OutputDebugStringN] Что-то пошло не так \ п"); }} Я получаю «необработанное исключение типа„System.AccessViolationException“произошло в editor.exe» сообщение об ошибке каждый раз при отправке в опорное значение аргумента; что вполне понятно, но я м интересно, как я мог инкапсулировать это в возможном заявлении попытки поймать, чтобы предотвратить ошибки от закрытия всей моей программы. (Выше не работает) Я в настоящее время вызова самодельного C ++ DLL (с ​​вышеописанной функцией) из моего C # редактора. Вот с # код: частная пустота ComponentDispatcher_ThreadIdle (объект отправителя, EventArgs е) {// Рендеринг окно дисплея (если что-то не блокирует его), если (renderViewHost.Update) {попробуйте {NativeMethods.UpdateRenderWindow (); } Задвижка (Исключение возб) {Debug.WriteLine ( "[ThreadIdle :: UpdateRenderWindow] Исключение пойманы: {0}" + возб); }}} Я просто считаю недопустимым, что моя функция для распечатки моих отладки строк имеет в себе ошибку. Есть идеи? Все комментарии на плохой код / ​​наблюдения приветствуются.
dk123
1

голосов
1

ответ
235

Просмотры

проблемы SwingWorker

Я пытаюсь сделать текст на основе игры с GUI в Java, и мне нужно использовать SwingWorker. . Однако я не понимаю, какой-либо из учебников, и он просто не имеет смысла для меня :( общественного недействительными записи (String тзд) {Int я = 0, в то время (правда) {попробуйте {Thread.sleep (300);} улов (InterruptedException е) {e.printStackTrace ();} console.setText (console.getText () + msg.charAt (я)); если (я == msg.length ()) {console.setText (console.getText () + перевод строки); перерыв;}}} по существу, что я пытаюсь сделать, это передать строку в метод и распечатать его символ на гольца, однако я не могу, как сон () interupts в EDT и запирает GUI для msg.length () * 400мс :(. Если кто-нибудь имеет решение коды с помощью SwingWorker я бы :) благодарности
1

голосов
1

ответ
29

Просмотры

функция, которая возвращает объект индекса входного

У меня есть функция, как общественный объект getObj (INT индекс, объект [] а) {если (индекс> a.size) // что вернуть ?? остальное возвращают [индекс-1]; } Что я должен вернуться, если индекс больше, чем размер? Я не хочу возвращаться нуль, так как нуль может быть объектом, и я хочу, чтобы иметь возможность различать случаи, что индекс больше, чем размер и объект является недействительным сам. Как следует использовать классы Java обработчики ошибок?
Sara
1

голосов
1

ответ
77

Просмотры

Превышение времени исключения в прологе, получить последнее значение перед ПРЕРЫВАЙТЕ

У меня есть предикат, который подсчитывает факториал для числа N, но когда время более 1 сек, то interupted: факторный (0, 1). факториала (N, N Значение): - N> 0, Пред является N - 1, факториала (Пред, Prevfact), Значение Prevfact * Н. факт (N, V): - фиксатор (call_with_time_limit (1, факториала (N, V )), time_limit_exceeded, писать ( 'превышено время!')). Как я могу получить последнее значение V непосредственно перед факториалом interupted? Спасибо
Keresan
1

голосов
2

ответ
3.3k

Просмотры

Есть ли Java эквивалент VB на ошибки / резюме следующий шаблон?

В VB, для ошибки захватывающего есть Public Sub MySub () On Error GoTo Errr 'делать вещи Errr:' ошибка ручки Resume Next End Sub, которая использует великолепный Resume Next команды. В Java, вы должны попробовать поймать блок попробовать {// некоторый код} поймать (Exception е) {// ошибка} ручка, которая, кажется, что эквивалентно ошибке VB поймать, но конкретно без Резюме Следующий вариант, так что Java просто завершает работу весь блок кода после ошибки, вместо того, чтобы пытаться запустить остальную часть кода после ошибки. Есть ли способ, чтобы получить власть Резюме Далее в Java? Спасибо!
chiliNUT
1

голосов
1

ответ
1k

Просмотры

Unusual termination in try catch throw

My OS is Win8 using Code::Blocks 12.10 I'm trying to get a handle on throwing and handling exceptions using an example from Starting Out with C++ Early Objects Addison Wesley. Here is the simple code I'm using: // This program illustrates exception handling #include #include using namespace std; // Function prototype double divide(double, double); int main() { int num1, num2; double quotient; //cout > num1 >> num2; num1 = 3; num2 = 0; try { quotient = divide(num1,num2); cout
Kyle Seidlitz
1

голосов
1

ответ
186

Просмотры

Как бороться с ошибками при повторном вызове lmrob в R

В рамках большого объема данных, я анализирующий с помощью R, я повторил сделать звонки lmrob из пакета robustbase для серии наборов данных. для (I в uniq.w) {у
Antonio2100
1

голосов
1

ответ
1.1k

Просмотры

не WebException пойманы в Try / улове

Я видел несколько постов с подобной проблемой, но решение не работает: / Я отлаживать службы Windows с помощью консольного приложения. Он выполняет задачи на веб-сайте и должны иметь возможность собирать статус кода HTTP для создания журналов. Как вы можете видеть, чувствительный код в Try / улове. Когда я отладки (F5), у меня есть WebException, не поймали. Когда я бегу (CTRL + F5), сообщение, за исключением является написать в моей консоли и останавливает мою программу. Это мой код: общественный класс Schedulor парциального: ServiceBase {недействительных RunTasks () {schedulor.Start (); Список задач = новый список (); Еогеасп (TaskPlanner тп в listTp) {если (tp.CountDown == 0 && tp.IsRunning == FALSE) {// Инициализация Lors де GetTasks () tp.IsRunning = истина; попробуйте {задачу. Добавить (Task.Factory.StartNew (() => тр = tp.ExecuteBot.Execute ())); // WEBEXECPTION ЗДЕСЬ (не может найти 404)} поймать (Exception е) {если (е WebException) {// Обработка}}}} Task.WaitAll (task.ToArray ()); CreateLogs (); }} Bot Открытого класса: Ibot {общественного TaskResult Execute () {TaskResult тр = новый TaskResult (); INT codeResponse, тайм-аут; строка учетных данных; попробуйте {WebRequest wrSettings = WebRequest.Create (settings.Url); // Обработка} задвижка (Исключение е) {//Console.WriteLine(e.Message); если (е WebException) {вар код = ((HttpWebResponse) ((WebException) е) .response) .StatusCode; если ((INT) код = settings.HttpResponse!) {tr.MyResult = TaskResult.Result.nok; Гото следующий; } Еще tr.MyResult = TaskResult.Result.ok; }} Следующий: возвращение тр; }} Я не понимаю, почему мой улов не работает. Мне нужно относиться к этой информации, потому что задача может проверить, является ли сайт возврата 404 или что-нибудь еще. Заранее спасибо EDIT: ----------- Я уменьшить код, как он просит, потому что удалили код не реальную проблему Ответ) .StatusCode; если ((INT) код = settings.HttpResponse!) {tr.MyResult = TaskResult.Result.nok; Гото следующий; } Еще tr.MyResult = TaskResult.Result.ok; }} Следующий: возвращение тр; }} Я не понимаю, почему мой улов не работает. Мне нужно относиться к этой информации, потому что задача может проверить, является ли сайт возврата 404 или что-нибудь еще. Заранее спасибо EDIT: ----------- Я уменьшить код, как он просит, потому что удалили код не реальную проблему Ответ) .StatusCode; если ((INT) код = settings.HttpResponse!) {tr.MyResult = TaskResult.Result.nok; Гото следующий; } Еще tr.MyResult = TaskResult.Result.ok; }} Следующий: возвращение тр; }} Я не понимаю, почему мой улов не работает. Мне нужно относиться к этой информации, потому что задача может проверить, является ли сайт возврата 404 или что-нибудь еще. Заранее спасибо EDIT: ----------- Я уменьшить код, как он просит, потому что удалили код не реальную проблему }} Следующий: возвращение тр; }} Я не понимаю, почему мой улов не работает. Мне нужно относиться к этой информации, потому что задача может проверить, является ли сайт возврата 404 или что-нибудь еще. Заранее спасибо EDIT: ----------- Я уменьшить код, как он просит, потому что удалили код не реальную проблему }} Следующий: возвращение тр; }} Я не понимаю, почему мой улов не работает. Мне нужно относиться к этой информации, потому что задача может проверить, является ли сайт возврата 404 или что-нибудь еще. Заранее спасибо EDIT: ----------- Я уменьшить код, как он просит, потому что удалили код не реальную проблему
Karine
0

голосов
2

ответ
30

Просмотры

Why do I get an 'IndexError: list index out of range' when I try to remove a record from my list in the except block

При попытке запуска этой функции, я получаю сообщение об ошибке Индекс: список из диапазона. Ошибка возникает в блоке, кроме кода, когда я пытаюсь использовать list.remove (список [я]). Не знаю, почему я получаю аут ошибки диапазона, и любая помощь будет высоко ценится! Я уже пробовал отладки с различными заявлениями печати вокруг моей функции, и я увидел, что моя запись в порядке, он просто бросает эту ошибку всякий раз, когда я пытаюсь удалить запись по моему, за исключением блока. Защиту subnet_insertion_sort (список): с открытым ( 'bad_subnets.csv', 'W') в качестве г: # Траверса через 1 до LEN (список) для I в диапазоне (1, Len (список)): # экстракты подсети из текущего списка наблюдается в списке # и бросает его в качестве ip_network объектов попробовать: key_subnet = Ipaddress.
Popilofu
1

голосов
2

ответ
77

Просмотры

Передача поля функционировать. PYTHON.Pandas

Я пытаюсь пинговать функцию и передать несколько полей из dataframe pyrecords. К сожалению, приведенный ниже код дает мне правильный ответ для поля обзора, но и напечатать все значения dealid и идентификатор пользователя. для рассмотрения в pyrecords [ 'обзор']: analyze_text (обзор, u'english», pyrecords [ 'dealid'], [pyrecords 'идента']) Вот что dataframe выглядит. >>> pyrecords Int64Index: 433 записей, 0 до 432 столбцов данных (всего 5 столбцов): createddate 433 ненулевых значений Идентификатор_пользователя 433 ненулевых значений dealid 433 ненулевых значений preferredlocale 42 ненулевых значений обзора 433 ненулевых значений dtypes: datetime64 [нс] (1), int64 (2), объект (2)
RomainD
1

голосов
1

ответ
213

Просмотры

Выход из иностранного модуля в Python (Обработка сигнала)

Я написал небольшой скрипт, который делает что-то очень много времени в Python и я включил сигнал модуля, который прослушивает SIGINT, SIGQUIT и SIGINFO обработки, печать статуса, когда либо SIGQUIT или SIGINFO, вводится пользователем и отбрасывание программы при SIGINT ( CTRL-C) вводится. Код ВЕСЬМА неаккуратно, потому что я взломал его вниз в течение нескольких минут и украл некоторые чужой код - не волнуйтесь, плохо очистить его, как только я (или, вернее, вы, потому что я застрял) нашел ошибку: Защиту setup_signals (progress_bar): импорт SYS сигнала импорта Защиты прогресс (* арг): печать (progress_bar) Защита killitwithfire (* арг): печать ( "[х] Пользователь прервала CTRL-C ABORTING..") sys.exit (0) для сиг в (signal.SIGINFO, signal.SIGQUIT): signal.signal (Sig, прогресс) для сиг в (signal.SIGINT,): signal.signal (сиг, killitwithfire) печать ( "Sig обработчики постройки: \ п Нажмите Ctrl + T (BSD / OS X). или Ctrf + 4 (Linux) для прогресса") печать ( "Нажмите CTRL-C, чтобы прервать") Теперь проблема что, когда CTRL-C вводится, сообщение в killitwithfire () - извините за плохой ссылки - печатается, но это не будет выхода. Код, в котором это выполняется находится внутри TRY / улова / блока. Если это проблема, как я могу выйти из этого модуля обработки сигналов? Если это не проблема, то что это? Если это проблема, как я могу выйти из этого модуля обработки сигналов? Если это не проблема, то что это? Если это проблема, как я могу выйти из этого модуля обработки сигналов? Если это не проблема, то что это?
hellerve
1

голосов
2

ответ
1.7k

Просмотры

Как я могу вернуть массив из примерочных поймать блок в Java?

Я создал 2D массив из чтения файла, и я хочу, чтобы вернуть этот массив. Однако я использую примерку поймать блок из-за чтения файла. На данный момент я не могу вернуть этот массив из этого function.Also, когда я пытаюсь написать элементы этого массива в примерочных поймать блок, он работает, но из блока нет. Что я должен сделать, чтобы получить массив? Мой код выглядит следующим образом: общественный статический двойной [] [] ReadFile (String FileName) {конечных двойные [] [] данные = новый двойной [178] [13]; INT х = 0, у = 0; попробовать {BufferedReader читатель = новый BufferedReader (новый FileReader (Filename)); Строка линии; в то время как ((строка = reader.readLine ())! = NULL) {String [] = значение line.split ( ""); для (String ул: значения) {двойной str_double = Double.parseDouble (ул); Данные [х] [у] = str_double; System.out.print (данные [х] [Y] +»,«); } System.out.println (); } Reader.close (); } Задвижка (Исключение е) {} возвращает данные; } Наконец, с подсказками все я нашел решение. Одна моя ошибка в определении у. Beacuse каждая строка содержит 14 элементов, но я назначил его на 13. Также я изменил метод назначения массива. Может быть, кому-то нужно, так что я его, чтобы здесь мое решение: публичное статическое двойное ReadFile [] [] (String FileName) {двойные [] [] данные = новый двойной [178] [14]; INT х = 0, у; попробуйте {BufferedReader читатель = новый BufferedReader (новый FileReader (Filename)); Строка линии; String [] значение; в то время как ((строка = reader.readLine ())! = NULL) {значения = line.split ( ""); для (у = 0; у с подсказками все я нашел решение. Одна моя ошибка в определении у. Beacuse каждая строка содержит 14 элементов, но я назначил его на 13. Также я изменил метод назначения массива. Может быть, кому-то нужно, так что я его, чтобы здесь мое решение: публичное статическое двойное ReadFile [] [] (String FileName) {двойные [] [] данные = новый двойной [178] [14]; INT х = 0, у; попробуйте {BufferedReader читатель = новый BufferedReader (новый FileReader (Filename)); Строка линии; String [] значение; в то время как ((строка = reader.readLine ())! = NULL) {значения = line.split ( ""); для (у = 0; у с подсказками все я нашел решение. Одна моя ошибка в определении у. Beacuse каждая строка содержит 14 элементов, но я назначил его на 13. Также я изменил метод назначения массива. Может быть, кому-то нужно, так что я его, чтобы здесь мое решение: публичное статическое двойное ReadFile [] [] (String FileName) {двойные [] [] данные = новый двойной [178] [14]; INT х = 0, у; попробуйте {BufferedReader читатель = новый BufferedReader (новый FileReader (Filename)); Строка линии; String [] значение; в то время как ((строка = reader.readLine ())! = NULL) {значения = line.split ( ""); для (у = 0; у общественности статической двойной [] [] ReadFile (String FileName) {двойные [] [] данных = новый двойной [178] [14]; INT х = 0, у; попробуйте {BufferedReader читатель = новый BufferedReader (новый FileReader (Filename)); Строка линии; String [] значение; в то время как ((строка = reader.readLine ())! = NULL) {значения = line.split ( ""); для (у = 0; у общественности статической двойной [] [] ReadFile (String FileName) {двойные [] [] данных = новый двойной [178] [14]; INT х = 0, у; попробуйте {BufferedReader читатель = новый BufferedReader (новый FileReader (Filename)); Строка линии; String [] значение; в то время как ((строка = reader.readLine ())! = NULL) {значения = line.split ( ""); для (у = 0; у
newbie
1

голосов
1

ответ
2.9k

Просмотры

Примерка с-ресурсами и ServerSockets

Я читал на примере сервера KnockKnock в http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html и я нашел немного кода у меня есть несколько вопросов о. попробовать (ServerSocket ServerSocket = новый ServerSocket (номер_порта)) {в то время как (слушать) {новый KKMultiServerThread (serverSocket.accept ()) старт (). }} Поймать (IOException е) {System.err.println ( "Не удалось прослушивает порт" + Portnumber); System.exit (-1); } Мои вопросы: Что такое сфера ServerSocket? Является ли его пригодным для использования в пойманной блоке исключения, или в другом месте в окружающем блоке? Если нет, то как можно надежно закрыть сокет? Как сокет закрыт в этом случае? Я полагаю, что единственный способ, что этот пример может остановить выполнение, чтобы принудительно завершить процесс, но то, что происходит с открытым гнездом после этой точки? Является ли порт используется больше не доступны для других приложений (или даже одного приложения)? Что происходит с новой KKMultiServerThread? Является ли этот поток очищен сборщиком мусора когда-нить завершила свою работу?
Steve
1

голосов
1

ответ
3.6k

Просмотры

Время компиляции Проверки исключений. Случай, когда, наконец, блок бросает непроверенное исключение неявно

Следующий код компилируется отлично. И я считаю, что это потому, что компилятор знает во время компиляции, что контроль будет идти в конце концов блокировать и бросить непроверенное исключение (которое в порядке, и не требует, чтобы быть обработано), и он знает, что все остальные исключения брошены код предварительного до этого момента теряется. поэтому нет необходимости беспокоиться Абт их. попробуйте {// DoSomething (); } Задвижка (Исключение е) {// Бросай проверяемое исключение} наконец {// Бросай непроверенной исключения} Пример: Открытый класс TestClass {государственной статической силы основных (String [] арг) {TestClass с = новый TestClass (); попробуйте {// Безотносительно} поймать (Exception е) {певд FileNotFoundException (); } Наконец {певд NullPointerException (); }}} До сих пор так хорошо, пока я не бросайте непроверенное исключение из метода. попробуйте {// DoSomething (); } Поймать (Exception е) {// Вызываем метод, который бросает проверяемое исключение // или просто бросить проверяемое исключение отсюда} Наконец {// Вызов метода, бросить непроверенной исключение} Пример: общественный класс TestClass {публичный статический вакуум Основные (String [] агдз) {TestClass с = новые TestClass (); попробуйте {// Whatever} поймать (Exception е) {c.m1 (); // или просто бросить его здесь // певд FileNotFoundException (); } Наконец {c.m2 (); }} Общественного недействительными m1 () бросает IOException {бросить новый FileNotFoundException (); } Общественного недействительными м2 () бросает RuntimeException {певд NullPointerException (); }} Этот код не будет компилироваться. Он отмечает c.m1 () с ошибкой «Необработанное исключением типа _» (затмение) или «незарегистрированное исключение _; Зная, что м2 () определяются как бросить специфический неконтролируемое исключение (RuntimeException). Кто-нибудь есть лучшее объяснение о том, почему есть ошибка компиляции во втором коде? Спасибо :) Зная, что м2 () определяются как бросить специфический неконтролируемое исключение (RuntimeException). Кто-нибудь есть лучшее объяснение о том, почему есть ошибка компиляции во втором коде? Спасибо :)
Randa Sbeity
1

голосов
1

ответ
445

Просмотры

попытаться поймать вокруг всего приложения

Мне было интересно, если это возможно, чтобы положить попробовать поймать вокруг всего приложения? Мой план состоял в том, чтобы сделать это, а затем представить любые ошибки в UIAlertView с кнопкой «разработчик электронной почты», который prepopulates по электронной почте мне. Хотя это и не идеальный пользовательский опыт, лучше, чем приложение просто сбой.
Charlie Seligman
1

голосов
1

ответ
3.1k

Просмотры

Log exceptions handled in try..catch with Elmah

I'm trying to log with Elmah exceptions handled in try...catch blocks. I have added a global handle error filter on Global.axax: public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new ElmahHandledErrorLoggerFilter()); filters.Add(new HandleErrorAttribute()); } This is my ElmahHandledErrorLoggerFilter: public class ElmahHandledErrorLoggerFilter : IExceptionFilter { public void OnException(ExceptionContext context) { if (context.ExceptionHandled) ErrorSignal.FromCurrentContext().Raise(context.Exception); } } It will only log the Exception as in try{ ... }catch{ throw new Exception(); }. But that's not the problem, the problem is that I have a method with a try-catch called from the code already inside another try-catch. In this case although I put throw new Exception() inside the catch of the inner-method it doesn't log the exception, it goes back to the catch in the first method without logging the Exception. For example: public void MainMethod() { try { SecondMethod(); } catch { ....second method jump here..... } } public void SecondMethod() { try { int a =0; int b =; int result = b/a; } catch { throw new Exception(); } } The exception thrown by SecondMethod is not being logged by Elmah. It goes back to the main method catch. If the main method catch also has a throw new Exception() code then it logs the exception. However it will be logged with the stack trace pointing to MainMethod and not to the SecondMethod. What I wanted what was that every time it reaches a catch without rethrowing a new Exception, Elmah would log the exception. This is because I have many try-catch blocks in my application and I want to log these exceptions without manually logging on each try-catch. However if you tell me how can I log the exception from SecondMethod that would be fine.
user2979690
1

голосов
1

ответ
1.1k

Просмотры

C ++ пытаются поймать бросок

У меня есть простая рекурсивная факторная программа. Суть этого упражнения заключается в обработке исключений. Мы были введены с ограничениями, не имеющие отрицательных чисел и не больше, чем число 12. {INT факторный (целое); INT число = 0; Строка с; в то время как (число! = -1) {соиЬ
HanH1113
1

голосов
1

ответ
297

Просмотры

Как сделать tryCatch действительно поймать ошибку

Я должен вызвать функцию, которая выдает ошибку, если аргументы не удовлетворили многих условий. Эти условия являются настолько сложными, что я не могу попытаться удовлетворить их 100% времени (я бы повторно вводить все условия функция проверяет внутренне). Вместо этого, я должен просто повторить вызов с различными аргументами (столько раз, сколько необходимо, чтобы заполнить свою таблицу). На других языках я могу написать поймать блок вокруг вызова. Однако, в R tryCatch, кажется, работает по-другому: вы можете дать код, наконец, =, но после выполнения наконец-кода внешней функции завершается в любом случае. Вот минимальный пример: sometimesError
Bernd Elkemann

Просмотр дополнительных вопросов