Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> throws Exception 
:(
    Опции темы
nyb
Дата 27.12.2005, 23:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код

import java.io.*;
public class  Log {
   FileWriter f = new FileWriter("Log.txt");

   public void newlog() { f.write ("Начало нового лога!"); };
   public void Log(String str) {f.write (str);}
   public void close() {f.write ("Конец лога!"); f.close ();}

}



вот когда я пишу функцию, то все ок
что-то вроде этого

public void Log(String str) throws Exception 
{ 
   FileWriter f = new FileWriter("Log.txt");
   f.write (str);
   f.close ();
}


а вот куда для всего класса Log throws Exception можно прописать?
как вобще правильно сделать... подскажите плз
  Вверх
LSD
Дата 27.12.2005, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(nyb @ 27.12.2005, 23:48)
а вот куда для всего класса Log throws Exception можно прописать?

1. У нас есть кнопка код предназначенная для вставки кода в сообщение.
2. throws Exception прописывается индивидуально для каждого метода, т.к. только метод может выкинуть исключение (класс же сам по себе не может выкинуть исключение).


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Guest
Дата 27.12.2005, 23:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











когда в методах прописываю Idea все равно на
Код

FileWriter f = new FileWriter("Log.txt");

ругается =(
Error: Error: line (10)unreported exception java.io.IOException; must be caught or declared to be thrown
пишет
  Вверх
sergejzr
Дата 27.12.2005, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Потому что надо так делать:
Код

try
{
FileWriter f = new FileWriter("Log.txt");
}catch( java.io.IOException e)
{
e.printStackTrace();
}



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Lеstat
Дата 28.12.2005, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 28.12.2005
Где: Москва

Репутация: нет
Всего: нет




Код

import java.io.*;
public class  Log {

try
{
FileWriter f = new FileWriter("Log.txt");
}catch( java.io.IOException e)
{
e.printStackTrace();
}
   public void newlog() throws Exception { f.write ("Начало нового лога!"); };
   public void Log(String str) throws Exception {f.write (str);}
   public void close() throws Exception {f.write ("Конец лога!"); f.close ();}
}


не получается =( вот что пишет

Error: Error: line (4)illegal start of type
Error: Error: line (12)<identifier> expected

PS: сорри что задаю тупые вопросы... первый день в яве
PM MAIL ICQ   Вверх
sergejzr
Дата 28.12.2005, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



инициализировтаь надо в кострукторе такие вещи. В обьявлении переменных класса никаких процедур естественно нельзя вписывать.

Я так понимаю, ты чтото вроде этого пытаешься сделать:
Код


import java.io.*;
public class  Log {
   FileWriter f = null; 
      //Это конструктор он вызывается когда ипользуешь оператор new
      // Например Log l=new Log();
      public Log() trows java.io.IOException
     {
           f = new FileWriter("Log.txt");
           f.write ("Начало нового лога!"); 
     }
   //Нельзя называть функцию именем класса!
   public void writeLog(String str) trows java.io.IOException
    {f.write (str);}
   public void close()  trows java.io.IOException
   {f.write ("Конец лога!"); f.close ();}

}

public void main(String argv[]) 
{ 
Log l=null;
     try
        {
           l = newLog();
           l.writeLog("test entry");
           l.close();
         }catch( java.io.IOException e)
         {
           e.printStackTrace();
         }
}



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Lеstat
Дата 28.12.2005, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 28.12.2005
Где: Москва

Репутация: нет
Всего: нет



я разобрался все работает спасибо, только лучше бы сделать чтобы из main в лог можно было записать такой строчкой log("asdasdasd"); , а не только log.write("asdasd");
в С++ так вроде можно... тут у меня не получается

у меня два файла:
proga.java
Код

public class proga {
        public static void main(String args[]) throws Exception {
          Log log = new Log();
          log.write("asdasd");
          log.close();
               }
}


и
Log.java
Код

import java.io.*;
public class  Log {
   FileWriter f = null;
     public Log() throws java.io.IOException
     {
         f = new FileWriter("Log.html");
         f.write("Начало лога <br>");
     }
      public void write (String str) throws java.io.IOException
     {
         str = str + "<br>";
         f.write (str);
     }

   public void close() throws java.io.IOException
   {f.write ("Конец лога!"); f.close ();}
}

подскажите плз как объявить функцию или оператор в классе Log чтобы log("asdasdasd"); тоже работало
PM MAIL ICQ   Вверх
sergejzr
Дата 28.12.2005, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 6
Всего: 360



Никак. Ява - обьектно-ориентрованный язык... Полностью.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Domestic Cat
Дата 28.12.2005, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

Репутация: 50
Всего: 172



Ну вообще-то можно
Код

public class proga {
        private static Log log;
        public static void main(String args[]) throws Exception {
          log = new Log();
          log("asdasd");
          log.close();
               }
          
         private static void log(String msg)
         {
               log.write(msg);
         }
}




--------------------

PM   Вверх
chief39
Дата 28.12.2005, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Цитата(L @ 28.12.2005, 00:58)
подскажите плз как объявить функцию или оператор в классе Log чтобы log("asdasdasd"); тоже работало



sergej.z истинно правду глаголит smile
Если у тебя несколько логгеров(объектов твоего класса Log) могут быть - тогда ты дожен указывать
Код

log1.writeLog("gfdghh"); 

Чтоб писать в конкретный лог.

А если Лог у тебя может быть только один в любой ситуации - тогда добавь к методу writeLog модификатор static. И к прочим методам класса тоже. Тогда даже не надо будет создавать объект. Ибо всё что static - в единственном экзепляре для данного класса (а не для каждого объекта его).
Например:

Код

import java.io.*;
public class  Log {

   static FileWriter f = null;  // единственный экземляр, независимо от количества
                                          // объектов данного класса

     public static void init() throws java.io.IOException
     {
         f = new FileWriter("Log.html"); // тут экземпляр инициализируется
         f.write("Начало лога <br>");
     }

     public static void write(String str) throws java.io.IOException
     {
         if(f==null) init();  // поскольку конструктор мы не пользуем, заботу о
                                   // инициализации перенесли сюда и автоматизировали
         str = str + "<br>";
         f.write (str);
     }

      public static void close() throws java.io.IOException
     {
         f.write ("Конец лога!");
         f.close ();
     }
}


Теперь не надо new - просто имя класса, точка, имя метода smile

Иногда, конечно, хочется просто Log(), но! Если у тебя будут всяческие логи в системе, ты ведь не будешь называть функции Log1(), Log2() - будешь извращаться с названиями. А так(например) - DB.Log(), Web.Log(), X.Log()
Ну, а если у тебя в разных модулях классы DB есть с такими методами - тогда полный пакет указываешь:
com.mylogger.DB.log();
com.notmylogger.utils.DB.log();
Красивое решение, хотя я тоже поначалу на него шипел smile

Это сообщение отредактировал(а) chief39 - 28.12.2005, 16:53


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
LSD
Дата 28.12.2005, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(L @ 28.12.2005, 00:58)
я разобрался все работает спасибо, только лучше бы сделать чтобы из main в лог можно было записать такой строчкой log("asdasdasd"); , а не только log.write("asdasd");
в С++ так вроде можно... тут у меня не получается

Если используется синтаксис Java 1.5, то можно так:
Код
import static java.lang.Math.*;
....
    double r = 10.0;
    double alpha = PI;
    double x = r * sin(alpha);



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0677 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.