Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Java probleem seoses erroritega märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
kevin3220
HV vaatleja

liitunud: 31.10.2011




sõnum 12.06.2013 20:47:09 Java probleem seoses erroritega vasta tsitaadiga

Terv,


Selline imelik asi mul varem ei ole juhtunud kuna alles hakkasin errorite käistlemist õppima. Olen googeldanud jne; aga abi ei ole leidnud ;(
Igatahes need asjad kus error oleks vaja teha siis väärtuseteks mida saaks igas klassis kasutada.
package pleier;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import sun.audio.AudioPlayer;
import sun.audio.AudioStream;

public class holdcrap {
   static String gongFile = "C:\\a.wav";
   
     
    static InputStream in = new FileInputStream(gongFile); //siin tekib probleem
   
   
    static AudioStream audioStream = new AudioStream(in); //ja siin
   
   
    public static void main(String args) throws IOException, InterruptedException
     {
       AudioPlayer.player.start(audioStream);
       System.out.println("going");
       Thread.sleep(10000);
       System.out.println("nyt");
      
      
   
      
      if (audioStream != null)
      {
          AudioPlayer.player.stop(audioStream);
      }
      System.out.println("stopping");
     }
   }
   



Tänud ette!!!
tagasi üles
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 12.06.2013 21:40:19 vasta tsitaadiga

Pole küll javaga väga kursis, aga pakuks, et InputStream ja AudioStream algväärtustamise peaksid panema kas main meetodisse või klassi constructor'isse(seda sa hetkel defineerinud ei ole), need try-catch blokki ja kui soovid, siis catch osas visata oma error, mille kuskil mujal kinni püüad. Kiire googeldamisega leitud viited:
http://docs.oracle.com/javase/tutorial/essential/exceptions/try.html
http://docs.oracle.com/javase/tutorial/essential/exceptions/throwing.html
aga kordan, javaga ma sina peal ei ole, eelnev on lihtsal loogika ja muude keelte kogemuse pealt oletatud.
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 60
tagasi üles
vaata kasutaja infot saada privaatsõnum
kevin3220
HV vaatleja

liitunud: 31.10.2011




sõnum 12.06.2013 21:56:42 vasta tsitaadiga

räägi selles klassi konstruktorist lähemalt. kuna tean , et maini saan panna aga mul on neid vaja pärst kätte saada ;(
tagasi üles
vaata kasutaja infot saada privaatsõnum
napoleon
Unknown virus
napoleon

liitunud: 08.12.2008



Autoriseeritud ID-kaardiga

sõnum 12.06.2013 22:11:15 vasta tsitaadiga

ups, see jäi kahe silma vahele, et sul kõik static on. Eks java gurud ütlevad, kas javas saab static osa jaoks constructor'i teha, ühes teises keeles saab.
Aga main meetodis saad samuti klassi atribuudid algväärtustada ja neid hiljem kasutada, otsest probleemi ma siin ei näe kui on kindel, et main meetod kutsutakse välja enne kui muud meetodid, mis neid kasutada võivad.
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 60
tagasi üles
vaata kasutaja infot saada privaatsõnum
connor
HV kasutaja

liitunud: 19.02.2003




sõnum 12.06.2013 23:25:28 vasta tsitaadiga

Üldiselt on IO ja NIO objektide algväärtustamine staticus halb mõte. Sa võid alati teha objekti klassimuutujana (ehk siis väljaspool meetoteid) kuid algväärtustada ja hiljem ka koristada võiks siiski oma main vms meetodi sees. Muidu konstruktori klassi tasemel saab alati teha kujul static{misiganessiinsees}, lihtsalt hilisem koristamine tuleks siis kuhu?
Ehk siis korrektne oleks selline skelett
//loome
try{
//väärtustame
} catch (Viga e){
//veahaldus
}finally{
//koristame
}
Kommentaarid: 31 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 28
tagasi üles
vaata kasutaja infot saada privaatsõnum
Deadlock
Kreisi kasutaja

liitunud: 16.07.2004




sõnum 13.06.2013 08:40:04 vasta tsitaadiga

Kui Java 7 kasutad, siis saad deklareerida streami try bloki päises.


try( InputStream in = new FileInputStream(file); ){
  in.read(); // ...
}


Nii tehakse streami kinnipanemine automaatselt blokist väljudes ja finally blokki pole vaja.

_________________
"Believe you can, believe you can't; either way, you're right." - Henry Ford
Kommentaarid: 8 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Java probleem seoses erroritega
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.