Ja, wenn du eine normale Exception deklarierst, dann muss die Exception entweder in der Methode abgefangen werden oder angegeben werden, dass diese Methode eine Exception werfen kann, dies wäre genau das "throws TemperaturException".
Allerdings muss diese Exception dann von der Methode, die diese Methode aufruft behandelt werden.
Eine RuntimeException kann zur Laufzeit auftreten (wie der Name schon sagt). Diese muss nicht, aber kann behandelt werden.
Eventuell solltest du dich nochmal mit dem Unterschied zwischen Exception und RuntimeException befassen
In deinem Fall sollte diese Exception eigentlich keine RuntimeException sein, da du ja ein Programm schreibst und diese Exception auf eine Fehlerhafte Eingabe hinweist. Also würdest du normalerweise diese Exception auffangen (catch) und z.B. eine Fehlermeldung ausgeben.
Wenn du nun allerdings wirklich nur den StackTrace möchtest, kannst du sie erstmal einfach als RuntimeException deklarieren und sparst dir nen bisschen Code.
@