diff --git a/src/uu/dmesg/src/dmesg.rs b/src/uu/dmesg/src/dmesg.rs
index d09c93e..96c995b 100644
--- a/src/uu/dmesg/src/dmesg.rs
+++ b/src/uu/dmesg/src/dmesg.rs
@@ -266,13 +266,10 @@ impl Dmesg<'_> {
         set: &Option<HashSet<T>>,
     ) -> impl Fn(&Result<Record, Box<dyn UError>>) -> bool + '_
     where
-        T: TryFrom<u32> + Eq + Hash,
+        T: From<u32> + Eq + Hash,
     {
         move |record: &UResult<Record>| match (record, set) {
-            (Ok(record), Some(set)) => match T::try_from(record.priority_facility) {
-                Ok(t) => set.contains(&t),
-                Err(_) => false,
-            },
+            (Ok(record), Some(set)) => set.contains(&T::from(record.priority_facility)),
             _ => true,
         }
     }
@@ -344,6 +341,7 @@ enum Facility {
     Local5,
     Local6,
     Local7,
+    Unknown,
 }
 
 #[derive(Eq, Hash, PartialEq)]
@@ -356,6 +354,7 @@ enum Level {
     Notice,
     Info,
     Debug,
+    Unknown,
 }
 
 struct RecordIterator {
@@ -436,56 +435,52 @@ impl Record {
     }
 }
 
-impl TryFrom<u32> for Level {
-    type Error = Box<dyn UError>;
-
-    fn try_from(value: u32) -> UResult<Self> {
+impl From<u32> for Level {
+    fn from(value: u32) -> Self {
         let priority = value & 0b111;
         match priority {
-            0 => Ok(Level::Emerg),
-            1 => Ok(Level::Alert),
-            2 => Ok(Level::Crit),
-            3 => Ok(Level::Err),
-            4 => Ok(Level::Warn),
-            5 => Ok(Level::Notice),
-            6 => Ok(Level::Info),
-            7 => Ok(Level::Debug),
-            _ => todo!(),
+            0 => Level::Emerg,
+            1 => Level::Alert,
+            2 => Level::Crit,
+            3 => Level::Err,
+            4 => Level::Warn,
+            5 => Level::Notice,
+            6 => Level::Info,
+            7 => Level::Debug,
+            _ => Level::Unknown,
         }
     }
 }
 
-impl TryFrom<u32> for Facility {
-    type Error = Box<dyn UError>;
-
-    fn try_from(value: u32) -> Result<Self, Self::Error> {
+impl From<u32> for Facility {
+    fn from(value: u32) -> Self {
         let facility = (value >> 3) as u8;
         match facility {
-            0 => Ok(Facility::Kern),
-            1 => Ok(Facility::User),
-            2 => Ok(Facility::Mail),
-            3 => Ok(Facility::Daemon),
-            4 => Ok(Facility::Auth),
-            5 => Ok(Facility::Syslog),
-            6 => Ok(Facility::Lpr),
-            7 => Ok(Facility::News),
-            8 => Ok(Facility::Uucp),
-            9 => Ok(Facility::Cron),
-            10 => Ok(Facility::Authpriv),
-            11 => Ok(Facility::Ftp),
-            12 => Ok(Facility::Res0),
-            13 => Ok(Facility::Res1),
-            14 => Ok(Facility::Res2),
-            15 => Ok(Facility::Res3),
-            16 => Ok(Facility::Local0),
-            17 => Ok(Facility::Local1),
-            18 => Ok(Facility::Local2),
-            19 => Ok(Facility::Local3),
-            20 => Ok(Facility::Local4),
-            21 => Ok(Facility::Local5),
-            22 => Ok(Facility::Local6),
-            23 => Ok(Facility::Local7),
-            _ => todo!(),
+            0 => Facility::Kern,
+            1 => Facility::User,
+            2 => Facility::Mail,
+            3 => Facility::Daemon,
+            4 => Facility::Auth,
+            5 => Facility::Syslog,
+            6 => Facility::Lpr,
+            7 => Facility::News,
+            8 => Facility::Uucp,
+            9 => Facility::Cron,
+            10 => Facility::Authpriv,
+            11 => Facility::Ftp,
+            12 => Facility::Res0,
+            13 => Facility::Res1,
+            14 => Facility::Res2,
+            15 => Facility::Res3,
+            16 => Facility::Local0,
+            17 => Facility::Local1,
+            18 => Facility::Local2,
+            19 => Facility::Local3,
+            20 => Facility::Local4,
+            21 => Facility::Local5,
+            22 => Facility::Local6,
+            23 => Facility::Local7,
+            _ => Facility::Unknown,
         }
     }
 }