Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tdt4100
v2022
students
Commits
88bd551a
Commit
88bd551a
authored
Mar 27, 2022
by
Børge Haugset
Browse files
unntak klare...
parent
307243c7
Changes
8
Hide whitespace changes
Inline
Side-by-side
foreksempel/src/main/java/uke13/unntak/CloseUnopenedFile.java
0 → 100644
View file @
88bd551a
package
uke13.unntak
;
import
java.io.BufferedReader
;
import
java.io.FileReader
;
import
java.io.IOException
;
public
class
CloseUnopenedFile
{
private
static
void
lesFil
()
{
String
filnavn
=
"C:/Users/borgeha/tdt4100-v2022/students/foreksempel/src/main/java/uke13/unntak/Linjer.txt"
;
BufferedReader
br
=
null
;
try
(
FileReader
fr
=
new
FileReader
(
filnavn
))
{
br
=
new
BufferedReader
(
fr
);
int
count
=
0
;
String
linje
;
while
(
br
.
ready
())
{
linje
=
br
.
readLine
();
count
++;
System
.
out
.
println
(
"Linje nummer "
+
count
+
": "
+
linje
);
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
public
static
void
main
(
String
[]
args
)
{
lesFil
();
}
}
foreksempel/src/main/java/uke13/unntak/FilLesing.java
0 → 100644
View file @
88bd551a
package
uke13.unntak
;
import
java.io.BufferedReader
;
import
java.io.FileReader
;
import
java.io.IOException
;
import
java.util.ArrayList
;
public
class
FilLesing
{
private
static
void
lesFil
()
{
BufferedReader
br
=
null
;
// For å initialisere den...
try
{
String
filnavn
=
"C:/Users/borgeha/tdt4100-v2022/students/foreksempel/src/main/java/uke13/unntak/Linjer.txt"
;
FileReader
fr
=
new
FileReader
(
filnavn
);
br
=
new
BufferedReader
(
fr
);
int
count
=
0
;
String
linje
;
while
(
br
.
ready
())
{
linje
=
br
.
readLine
();
count
++;
System
.
out
.
println
(
"Linje nummer "
+
count
+
": "
+
linje
);
}
// int a = 3/0;
}
catch
(
IOException
e
)
{
System
.
out
.
println
(
"IOException: "
+
e
.
getMessage
());;
}
try
{
System
.
out
.
println
(
"Før close"
);
br
.
close
();
System
.
out
.
println
(
"Etter close"
);
}
catch
(
IOException
e
)
{
System
.
out
.
println
(
"Close feilet: "
+
e
.
getMessage
());
}
}
public
static
void
main
(
String
[]
args
)
{
lesFil
();
}
}
foreksempel/src/main/java/uke13/unntak/Linjer.txt
0 → 100644
View file @
88bd551a
Line 1
Linje 2
Linj 3
Linea 4
\ No newline at end of file
foreksempel/src/main/java/uke13/unntak/NorskeTall.java
0 → 100644
View file @
88bd551a
package
uke13.unntak
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
public
class
NorskeTall
{
private
int
value
,
tenvalue
,
onevalue
;
List
<
String
>
validTens
=
new
ArrayList
<>(
Arrays
.
asList
(
"tjue"
,
"tretti"
,
"førti"
,
"femti"
,
"seksti"
,
"sytti"
,
"åtti"
,
"nitti"
,
"hundre"
));
List
<
String
>
validOnes
=
new
ArrayList
<>(
Arrays
.
asList
(
"null"
,
"en"
,
"to"
,
"tre"
,
"fire"
,
"fem"
,
"seks"
,
"sju"
,
"åtte"
,
"ni"
));
List
<
String
>
validSpecial
=
new
ArrayList
<>(
Arrays
.
asList
(
"ti"
,
"elleve"
,
"tolv"
,
"tretten"
,
"fjorten"
,
"femten"
,
"seksten"
,
"sytten"
,
"atten"
,
"nitten"
));
public
int
getValue
()
{
return
value
;
}
private
void
parseInput
(
String
streng
)
{
// Sjekker for tall mellom 11 og 19 først
if
(
validSpecial
.
contains
(
streng
))
{
value
=
validSpecial
.
indexOf
(
streng
)
+
10
;
return
;
}
// Sjekker for tall under 10, dvs 0 - 9
if
(
validOnes
.
contains
(
streng
))
{
value
=
validOnes
.
indexOf
(
streng
);
return
;
}
// Sjekker for hele tiere
if
(
validTens
.
contains
(
streng
))
{
value
=
(
validTens
.
indexOf
(
streng
)+
2
)*
10
;
return
;
}
// SÅ kommer det vanskelige: sjekke substrenger.
// Det vi vet: strengen MÅ inneholde en valid ener og en valid tier.
// Vi må også sjekke for om strengen inneholder noe mer enn bare det...
parseTensAndOnes
(
streng
);
}
private
void
parseTensAndOnes
(
String
streng
)
{
// Sjekke først for tiere
// System.out.println("Sjekker "+streng);
for
(
int
i
=
0
;
i
<
validTens
.
size
();
i
++)
{
if
(
streng
.
contains
(
validTens
.
get
(
i
)))
{
// har tieren
// System.out.println("Funnet tier: "+(i*10+20));
tenvalue
=
i
*
10
+
20
;
// Så må vi fjerne substring av tiere fra hele strengen,
// hvis ikke utløses femtito av sjekk på fem.
streng
=
streng
.
replace
(
validTens
.
get
(
i
),
""
);
break
;
}
}
// så sjekker vi enerne.
for
(
int
i
=
0
;
i
<
validOnes
.
size
();
i
++)
{
if
(
streng
.
contains
(
validOnes
.
get
(
i
)))
{
// har eneren
// System.out.println("Funnet ener: "+i);
onevalue
=
i
;
break
;
}
}
if
(
onevalue
==
0
&&
tenvalue
==
0
)
throw
new
NorskeTallException
(
"Feil med tiere og enere: "
+
streng
);
else
if
(
onevalue
==
0
)
throw
new
NorskeTallException
(
"Feil med enere: "
+
streng
);
else
if
(
tenvalue
==
0
)
throw
new
NorskeTallException
(
"Feil med tiere: "
+
streng
);
// Oppdatere der det er funnet både tiere og ener:
value
=
tenvalue
+
onevalue
;
}
public
void
sjekkTall
(
String
streng
)
{
this
.
parseInput
(
streng
);
}
public
NorskeTall
(
String
streng
)
{
parseInput
(
streng
);
}
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
new
NorskeTall
(
"nittisju"
).
getValue
());
System
.
out
.
println
(
new
NorskeTall
(
"tretten"
).
getValue
());
System
.
out
.
println
(
new
NorskeTall
(
"åtte"
).
getValue
());
System
.
out
.
println
(
new
NorskeTall
(
"tjue"
).
getValue
());
System
.
out
.
println
(
new
NorskeTall
(
"tjuetre"
).
getValue
());
// Så de med feil:
// System.out.println(new NorskeTall("firefire").getValue());
// System.out.println(new NorskeTall("førtisytten").getValue());
// System.out.println(new NorskeTall("fjørtifjire").getValue());
}
}
foreksempel/src/main/java/uke13/unntak/NorskeTallException.java
0 → 100644
View file @
88bd551a
package
uke13.unntak
;
public
class
NorskeTallException
extends
NumberFormatException
{
public
NorskeTallException
()
{
super
();
}
public
NorskeTallException
(
String
s
)
{
super
(
s
);
}
}
foreksempel/src/main/java/uke13/unntak/u16.java
0 → 100644
View file @
88bd551a
package
uke13.unntak
;
public
class
u16
{
private
static
void
method3
(
String
str
)
throws
Exception
{
if
(
str
.
equals
(
"hei"
))
throw
new
Exception
(
"Feil!"
);
else
System
.
out
.
println
(
"Du skrev "
+
str
);
}
private
static
void
method2
(
String
str
)
throws
Exception
{
method3
(
str
);
}
private
static
void
method1
(
String
str
)
{
try
{
method2
(
str
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"Let me take care of this: "
+
e
.
getLocalizedMessage
());
}
}
public
static
void
main
(
String
[]
args
)
{
method1
(
"Ost"
);
method1
(
"hei"
);
}
}
foreksempel/src/main/java/uke13/unntak/u17.java
0 → 100644
View file @
88bd551a
package
uke13.unntak
;
import
java.io.IOException
;
public
class
u17
{
private
static
void
method3
(
String
str
)
{
double
d
=
Double
.
valueOf
(
str
);
System
.
out
.
println
(
"Made number: "
+
d
);
}
private
static
void
method2
(
String
str
)
{
try
{
method3
(
str
);
}
catch
(
IllegalArgumentException
e
)
{
// Trykk på unntaket, trykk F4 eller c-s-P 'show type hierarchy'
System
.
out
.
println
(
"Meep method2, IllegalArgumentException"
);
}
}
private
static
void
method1
(
String
str
)
{
try
{
method2
(
str
);
}
catch
(
NumberFormatException
e
)
{
// Trykk på unntaket, trykk F4 eller c-s-P 'show type hierarchy'
System
.
out
.
println
(
"Meg fikse"
);
}
}
public
static
void
main
(
String
[]
args
)
{
method1
(
"3"
);
method1
(
"hei"
);
// throw new RuntimeException(); marker unntaket, trykk på F4 for å se klassehierarki.
}
}
foreksempel/src/main/java/uke13/unntak/u18.java
0 → 100644
View file @
88bd551a
package
uke13.unntak
;
public
class
u18
{
private
static
void
method4
()
{
throw
new
IllegalArgumentException
();
}
private
static
void
method3
()
{
try
{
method4
();
}
catch
(
NumberFormatException
e
)
{
System
.
out
.
println
(
"Method3 caught "
+
e
.
getMessage
());
}
}
private
static
void
method2
()
{
try
{
method3
();
}
catch
(
IndexOutOfBoundsException
ioob
){
System
.
out
.
println
(
"Hvorfor er jeg her, egentlig. Jo, for å vise at en "
+
"kan ha flere typer unntak etter hverandre."
);
}
catch
(
IllegalArgumentException
e
)
{
System
.
out
.
println
(
"Method2 caught "
+
e
.
getMessage
());
}
}
private
static
void
method1
()
{
try
{
method2
();
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"Method1 caugt "
+
e
.
getMessage
());
}
}
public
static
void
main
(
String
[]
args
)
{
method1
();
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment